web移动端学习:高德地图demo(一)

余生颓废 提交于 2020-02-26 17:39:30
  1. 在高德地图开发中申请开发者资格,然后在控制台中新建应用,获得KEY;
  2. 新建模板HTML文件;
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>地图demo</title>
	<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=申请到的KEY"></script>
	<style type="text/css">
		*{margin: 0;padding: 0;}
		#container {width:100%; height:100%;position: absolute; 
			left: 0;top: 0;}
	</style>
</head>
<body>
	<div id="container"></div>
	<script type="text/javascript">
		var map = new AMap.Map('container',{
			zoom:12 ,
			center:[114.05,22.5]//深圳
		});

	map.on('moveend',function(){
		console.log(map.getCenter().toString());
	})
	map.on('zoomend',function(){
		console.log(map.getZoom());
	})
	</script>
</body>
</html>

此时已经可以加载地图,后面逐渐增加功能。

下面是一些自带的方法

  1. 地图设置行政区
map.getCity(funcyion(info){
	info  当前中心点的行政区
})
map.setCity('字符串');   //设置地区
  1. 地图范围
  • 获取地图的范围
getBonds().northeast //右上角的坐标
getBounds().southwest //左下角的坐标
  • 设置地图的范围
var myBounds = new AMap.Bounds//左下角坐标的数组,右上角坐标的数组
map.setBounds(myBounds) //但是不是特别精准,会以它觉得最好的方式去显示
  • 设定和清除显示范围
getBounds() //northeast.P / R  southwest.P / R
setLimitBounds() ;
clearLimitBounds();//清除设定的显示范围
  1. 平移
panBy(x,y)  //x代表向左平移多少像素  / y代表向上平移多少像素
panTo([x坐标,y坐标]) //地图会直接平移到这个位置
  1. 地址搜索+点击搜索结果跳转 加载插件Autocomplete,调用search()方法
AMap.plugin('AMap.Autocomplete',function(){
	sinput.oninput = function(){
		node.innerHTML = '';//清空地点提示
		if (this.value == '') {
			return;
		}
	new AMap.Autocomplete().search(this.value,function(status,data){
		for(var i = 0;i < data.tips.length;i++){
		//console.log(data.tips);
		var oLi = document.createElement('li');
		oLi.innerHTML = data.tips[i].name;
		oLi.P = data.tips[i].location.P;
		oLi.Q = data.tips[i].location.Q;
		nodeappendChild(oLi);
//点击跳转
		oLi.onclick = function(){
		map.setCenter([this.Q,this.P]);
		map.setZoom(16);
			}
		}
	})
}
})

这时已经完成了一半,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>地图demo</title>
	<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=你的KEY"></script>
	<style type="text/css"> 
		*{
			margin: 0;
			padding: 0;
		}
		#container {
			width:100%; 
			height:100%;
			position: absolute; 
			left: 0;
			top: 0;
		}
		.tiaozhuan{
			width: 90px;
			margin-right: 2px;
			float: left;
		}
		#panel{
            position: fixed;
            background: white;
            top: 10px;
            right: 10px;
            width: 280px;
            height: 200px;
        }

        #setCenterNode{
        	width: 200px;
        	height: 80px;
        	position:absolute;
        	top: 10px;
        	right: 20px;
        	z-index: 99;
        	border: 1px solid black;
        	box-shadow: 0 0 5px black;
        	background: white;
        	padding: 20px;
        }

        #search{
        	width: 200px;
        	height: 50px;
        	z-index: 99;
        	position: relative;
        	top: 20px;
        	right: 20px;
        	border: 1px solid black;
        	box-shadow: 0 0 5px black;
        	background: white;
        	padding: 5px 20px;
        	display: block;
        	align-items: center;
        }
        .searchinput{
			width: 140px;
			height: 30px;
        }
        ul{
        	background: white;
        	list-style: none;
        }
        /*#btn2{
        	background: blue;
        	color: white;
        	width: 40px;
        	height: 32px;
        	font-size: 15px;
        	border: 0;
        	box-shadow: 1px 1px 2px black;
        }*/
	</style>
</head>
<body>
	<div id="container"></div>
	<div id="setCenterNode">
		<h3 id="city">正在获取所在地区...</h3>
		<h4>经纬度跳转:</h4>
		<input type="" name="" id="xNode" class="tiaozhuan">
		<input type="" name="" id="yNode" class="tiaozhuan">
		<button id="btn">确定</button>

		<div id="search">
			<input type="" name="" id="sinput" class="searchinput">
			<!--<button id="btn2" >搜索</button>-->
			<ul id="node"></ul>
		</div>
	</div>
	
	<script type="text/javascript">
		var map = new AMap.Map('container',{
			zoom:14 ,
			center:[114.069312,22.577293],
			resizeEnable:true
		});

	//加载插件(未完善)
	AMap.plugin('AMap.Autocomplete',function(){
		sinput.oninput = function(){
			node.innerHTML = '';//清空地点提示
			if (this.value == '') {
				return;
			}
			new AMap.Autocomplete().search(this.value,function(status,data){
				for(var i = 0;i < data.tips.length;i++){
					//console.log(data.tips);
					var oLi = document.createElement('li');
					oLi.innerHTML = data.tips[i].name;
					oLi.P = data.tips[i].location.P;
					oLi.Q = data.tips[i].location.Q;
					node.appendChild(oLi);

					oLi.onclick = function(){
						map.setCenter([this.Q,this.P]);
						map.setZoom(16);
					}
				}
			})
		}
	})
	//点击按钮跳转
	btn.onclick = function(){
            map.setCenter([xNode.value,yNode.value]);
        };
    //显示所在省份/地区
    map.getCity(function(info){
    	console.log(info);
		city.innerHTML = info.province+','+info.district
    })
	//改变中心点
	map.on('moveend',function(){
		map.getCity(function(info){
			//console.log(info);
			city.innerHTML = info.province+','+info.city+','+info.district
		});
		console.log(map.getCenter().toString());
	})
	//改变地图显示级别
	map.on('zoomend',function(){
		console.log(map.getZoom());
	})
	//容器改变
	map.on('resize',function(){
            console.log('容器大小改变中');
        });
	</script>
</body>
</html>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!