167 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			HTML
		
	
	
		
		
			
		
	
	
			167 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			HTML
		
	
	
|  | <!DOCTYPE html> | |||
|  | <html lang="en"> | |||
|  | <head> | |||
|  |     <meta charset="UTF-8"> | |||
|  |     <title>地图</title> | |||
|  |     <script type="text/javascript" src="__COMMON__/jquery-3.4.1.min.js"></script> | |||
|  |     <link rel="stylesheet" href="__MANAGER__/layui/css/layui.css"> | |||
|  |     <script type="text/javascript" src="__MANAGER__/layui/layui.all.js"></script> | |||
|  |     <!--高德地图js引入--> | |||
|  |     <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.14&key=68b7bd8022d63972a2a31b5d6a3c69b6"></script> | |||
|  |     <style> | |||
|  |         #iMap { | |||
|  |             height: 450px; | |||
|  |             width: 100%; | |||
|  |             clear: both; | |||
|  |         } | |||
|  |         .info { | |||
|  | 
 | |||
|  |             margin: 0 0 0 10px; | |||
|  |         } | |||
|  |         label { | |||
|  |             width: 80px; | |||
|  |             float: left; | |||
|  |         } | |||
|  |         .detail { | |||
|  |             padding: 10px; | |||
|  |             border: 1px solid #aaccaa; | |||
|  |         } | |||
|  |     </style> | |||
|  | </head> | |||
|  | <body> | |||
|  | <div class="info"> | |||
|  |     <p>说明:</p> | |||
|  |     <p>1、鼠标滚轮可以缩放地图,拖动地图。</p> | |||
|  |     <p>2、点击地图,即可获得GCJ-02的经纬度坐标,即火星坐标。</p> | |||
|  | </div> | |||
|  | <div class="layui-card layui-col-md12"> | |||
|  |     <div class="layui-card-body layui-form" style="overflow: auto;"> | |||
|  |             <div class="layui-form-item"> | |||
|  |                 <div class="layui-input-inline"> | |||
|  |                     <input type="text" class="layui-input" id="keyword" placeholder="请输入地名" value=""/> | |||
|  |                 </div> | |||
|  |                 <div class="layui-input-inline"> | |||
|  |                     <button type="button" class="layui-btn layui-btn-normal" id="search">搜索</button> | |||
|  |                 </div> | |||
|  |             </div> | |||
|  |     </div> | |||
|  | </div> | |||
|  | <div id="iMap"></div> | |||
|  | <script language="javascript"> | |||
|  |     layui.use(["layer"],function () { | |||
|  |         var layer =layui.layer; | |||
|  |         $(function () { | |||
|  |             var mapObj; | |||
|  |             var lnglatXY; | |||
|  |             //初始化地图 | |||
|  |             function mapInit() { | |||
|  |                 let lng = {:empty($lng)?"104.072356":$lng}; | |||
|  |                 let lat = {:empty($lat)?"30.662162":$lat}; | |||
|  |                 var opt = { | |||
|  |                     level: 14, //设置地图缩放级别 | |||
|  |                     center: new AMap.LngLat(lng,lat) //设置地图中心点 | |||
|  |                 } | |||
|  |                 mapObj = new AMap.Map("iMap", opt); | |||
|  |                 AMap.event.addListener(mapObj, 'click', getLnglat); //点击事件 | |||
|  | 
 | |||
|  |                 let lnglatXY = new AMap.LngLat(lng, lat); | |||
|  | 
 | |||
|  |                 // 创建一个 Marker 实例: | |||
|  |                 var marker = new AMap.Marker({ | |||
|  |                     position: lnglatXY,   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9] | |||
|  |                 }); | |||
|  |                 // 将创建的点标记添加到已有的地图实例: | |||
|  |                 mapObj.add(marker); | |||
|  |             } | |||
|  |             mapInit(); | |||
|  |             function geocoder() { | |||
|  |                 var MGeocoder; | |||
|  |                 //加载地理编码插件 | |||
|  |                 mapObj.plugin(['AMap.ToolBar','AMap.Scale','AMap.OverView','AMap.MapType','AMap.Geolocation'], | |||
|  |                     function(){ | |||
|  |                         mapObj.addControl(new AMap.ToolBar()); | |||
|  | 
 | |||
|  | 
 | |||
|  |                         mapObj.addControl(new AMap.Scale()); | |||
|  | 
 | |||
|  | 
 | |||
|  |                         mapObj.addControl(new AMap.OverView({isOpen:true})); | |||
|  |                         mapObj.addControl(new AMap.MapType()); | |||
|  |                         mapObj.addControl(new AMap.Geolocation()); | |||
|  |                     }); | |||
|  |                 mapObj.plugin(["AMap.Geocoder"], function () { | |||
|  |                     MGeocoder = new AMap.Geocoder({ | |||
|  |                         radius: 1000, | |||
|  |                         extensions: "all" | |||
|  |                     }); | |||
|  |                     //返回地理编码结果 | |||
|  |                     AMap.event.addListener(MGeocoder, "complete"); | |||
|  |                     //逆地理编码 | |||
|  |                     MGeocoder.getAddress(lnglatXY); | |||
|  |                 }); | |||
|  |             } | |||
|  | 
 | |||
|  |             //鼠标点击,获取经纬度坐标 | |||
|  |             function getLnglat(e) { | |||
|  |                 mapObj.clearMap(); | |||
|  |                 let lng = e.lnglat.getLng(); | |||
|  |                 let lat = e.lnglat.getLat(); | |||
|  |                 parent.setLngLat(lng,lat); | |||
|  | 
 | |||
|  |                 let lnglatXY = new AMap.LngLat(lng, lat); | |||
|  |                 geocoder(); | |||
|  | 
 | |||
|  |                 // 创建一个 Marker 实例: | |||
|  |                 var marker = new AMap.Marker({ | |||
|  |                     position: lnglatXY,   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9] | |||
|  |                 }); | |||
|  |                 // 将创建的点标记添加到已有的地图实例: | |||
|  |                 mapObj.add(marker); | |||
|  |             } | |||
|  |             //搜索 | |||
|  |             $("#search").on("click",function () { | |||
|  |                 $.ajax({ | |||
|  |                     url: "https://restapi.amap.com/v3/geocode/geo?parameters", | |||
|  |                     data: { | |||
|  |                         "key":"68b7bd8022d63972a2a31b5d6a3c69b6", | |||
|  |                         "address":$("#keyword").val(), | |||
|  |                     }, | |||
|  | 
 | |||
|  |                     type: 'get', | |||
|  |                     dataType: 'json', | |||
|  |                     timeout: 10000, | |||
|  |                     success: function(data){ | |||
|  |                         if(data.status==1&&data.count>0){ | |||
|  |                             let geo = data.geocodes[0].location.split(","); | |||
|  |                             let lng = geo[0]; | |||
|  |                             let lat = geo[1]; | |||
|  |                             //设置中心点 | |||
|  |                             mapObj.setZoomAndCenter(14, [lng,lat ]); | |||
|  | 
 | |||
|  |                             // 创建一个 Marker 实例: | |||
|  |                             let lnglatXY = new AMap.LngLat(lng, lat); | |||
|  |                             var marker = new AMap.Marker({ | |||
|  |                                 position: lnglatXY,   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9] | |||
|  |                             }); | |||
|  |                             // 将创建的点标记添加到已有的地图实例: | |||
|  |                             mapObj.add(marker); | |||
|  | 
 | |||
|  |                             parent.setLngLat(lng,lat); | |||
|  |                         }else{ | |||
|  |                             layer.msg("没有搜索结果"); | |||
|  |                         } | |||
|  |                     }, | |||
|  |                     error:function(xhr,type,errorThrown){ | |||
|  |                         layer.msg('操作失败!', {time: 1500}); | |||
|  |                     } | |||
|  |                 }); | |||
|  | 
 | |||
|  | 
 | |||
|  |             }) | |||
|  | 
 | |||
|  |         }) | |||
|  |     }) | |||
|  | 
 | |||
|  | </script> | |||
|  | </body> | |||
|  | </html> |