高德坐标拾取器

页面效果

应用场景:你需要在一个弹窗中拾取一个高德的地址坐标。

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5     <title>酸奶小妹的火星坐标</title>
  6     <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=YOUKEY"></script>
  7     <style>
  8         #iMap {
  9             height: 500px;
 10             width: 600px;
 11             float: left;
 12         }
 13         .info {
 14             float: left;
 15             margin: 0 0 0 10px;
 16         }
 17         label {
 18             width: 80px;
 19             float: left;
 20         }
 21         .detail {
 22             padding: 10px;
 23             border: 1px solid #aaccaa;
 24         }
 25     </style>
 26 </head>
 27 <body onload="mapInit()">
 28     <div id="iMap"></div>
 29     <div class="info">
 30         <h1>坐标拾取工具(GCJ-02坐标)</h1>
 31         <p>说明:</p>
 32         <p>1、鼠标滚轮可以缩放地图,拖动地图。</p>
 33         <p>2、点击地图,即可获得GCJ-02的经纬度坐标,即火星坐标。</p>
 34     </br>
 35     <div class="detail">
 36         <p>
 37             <span id="lnglat">&nbsp;</span>
 38         </p>
 39         <p>
 40             <span id="iAddress">&nbsp;</span>
 41         </p>
 42     </div>
 43 </div>
 44 </body>
 45     <script language="javascript">
 46         var mapObj;
 47         var lnglatXY;
 48         //初始化地图
 49         function mapInit() {
 50             var opt = {
 51                 level: 10, //设置地图缩放级别
 52                 center: new AMap.LngLat(116.397428, 39.90923) //设置地图中心点
 53             }
 54             mapObj = new AMap.Map("iMap", opt);
 55             AMap.event.addListener(mapObj, 'click', getLnglat); //点击事件
 56         }
 57         function geocoder() {
 58             var MGeocoder;
 59             //加载地理编码插件
 60             mapObj.plugin(["AMap.Geocoder"], function () {
 61                 MGeocoder = new AMap.Geocoder({
 62                     radius: 1000,
 63                     extensions: "all"
 64                 });
 65                 //返回地理编码结果
 66                 AMap.event.addListener(MGeocoder, "complete", geocoder_CallBack);
 67                 //逆地理编码
 68                 MGeocoder.getAddress(lnglatXY);
 69             });
 70             //加点
 71             var marker = new AMap.Marker({
 72                 map: mapObj,
 73                 icon: new AMap.Icon({
 74                     image: " http://api.amap.com/Public/images/js/mark.png" ,
 75                     size: new AMap.Size(58, 30),
 76                     imageOffset: new AMap.Pixel(-32, -0)
 77                 }),
 78                 position: lnglatXY,
 79                 offset: new AMap.Pixel(-5, -30)
 80             });
 81             // mapObj.setFitView();
 82         }
 83         //回调函数
 84         function geocoder_CallBack(data) {
 85             console.log("ddd");
 86             var address;
 87             //返回地址描述
 88             address = data.regeocode.formattedAddress;
 89             console.log(address);
 90             //返回结果拼接输出
 91             document.getElementById("iAddress").innerHTML = address;
 92         }
 93         //鼠标点击,获取经纬度坐标
 94         function getLnglat(e) {
 95             mapObj.clearMap();
 96             var x = e.lnglat.getLng();
 97             var y = e.lnglat.getLat();
 98             document.getElementById("lnglat").innerHTML = x + "," + y;
 99             lnglatXY = new AMap.LngLat(x, y);
100             geocoder();
101         }
102     </script>
103 </html>

供参考,谢谢

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以通过以下步骤来实现高德坐标拾取和地址检索: 1. 在高德地图开放平台申请开发者账号,并创建应用,获取API密钥。 2. 在需要使用地图的页面中引入高德地图JavaScript API库文件。 ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=您的密钥&plugin=AMap.Autocomplete"></script> ``` 3. 在页面中创建一个地图容。 ```html <div id="map"></div> ``` 4. 初始化地图对象,设置地图中心点和缩放级别。 ```javascript var map = new AMap.Map("map", { center: [116.397428, 39.90923], // 设置地图中心点坐标 zoom: 13 // 设置地图缩放级别 }); ``` 5. 在地图上添加一个标注,并监听标注的拖拽事件,获取标注的坐标。 ```javascript var marker = new AMap.Marker({ position: map.getCenter(), // 设置标注位置为地图中心点 draggable: true, // 设置标注可拖拽 cursor: 'move' // 设置标注鼠标样式 }); marker.setMap(map); // 将标注添加到地图中 marker.on('dragend', function(e) { // 监听标注拖拽事件 console.log(e.lnglat.getLng(), e.lnglat.getLat()); // 获取标注的经纬度坐标 }); ``` 6. 使用高德地图API的地址解析服务,将地址转换为坐标,并在地图上添加一个标注。 ```javascript var address = "北京市海淀区上地信息路9号"; // 设置要解析的地址 var geocoder = new AMap.Geocoder({ // 创建地址解析实例 city: "北京市" // 指定地址所在的城市 }); geocoder.getLocation(address, function(status, result) { // 将地址解析为坐标 if (status === 'complete' && result.geocodes.length) { var lnglat = result.geocodes[0].location; // 获取解析出的坐标 map.setCenter(lnglat); // 将地图中心点设置为解析出的坐标 var marker = new AMap.Marker({ // 创建标注 position: lnglat // 设置标注位置为解析出的坐标 }); marker.setMap(map); // 将标注添加到地图中 } else { alert("您选择地址没有解析到结果!"); } }); ``` 以上就是高德地图实现地址检索获取结果列表和坐标的基本步骤。您可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值