地理编码与逆地理编码
引入插件,此示例采用异步引入,更多引入方式 https://lbs.amap.com/api/javascript-api-v2/guide/abc/plugins
AMap.plugin("AMap.Geocoder", function () {var geocoder = new AMap.Geocoder({city: "010", // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode});var lnglat = [116.396574, 39.992706];geocoder.getAddress(lnglat, function (status, result) {if (status === "complete" && result.info === "OK") {// result为对应的地理位置详细信息console.log(result);}});
});
- 地图的单击事件:
// 初始化地图const map = new AMap.Map('container',{});
map.on('click', () => {console.log('触发地图鼠标左键单击事件');// 可以拿到经纬度
});
属性:
- 地址获取。拿到经纬度后可通过逆地理编码拿到地址,方法名
getAddress
。参考文档:地理编码与逆地理编码-服务插件和工具-进阶教程-地图 JS API 2.0 | 高德地图API
AMap.plugin("AMap.Geocoder", function () {var geocoder = new AMap.Geocoder({city: "010", // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode});var lnglat = [116.396574, 39.992706];geocoder.getAddress(lnglat, function (status, result) {if (status === "complete" && result.info === "OK") {// result为对应的地理位置详细信息console.log(result);}});
});
- 两点之间的距离计算,拿到两点经纬度即可。
核心代码:var distance = Math.round(p1.distance(p2));
高德的示例是这样的:
参考手册-地图 JS API 2.0 | 高德地图API 距离计算
//初始化地图对象,加载地图var map = new AMap.Map("container", {resizeEnable: true,zoom: 13});var m1 = new AMap.Marker({map: map,draggable:true,position: new AMap.LngLat(116.368904, 39.923423)});var m2 = new AMap.Marker({map: map,draggable:true,position:new AMap.LngLat(116.387271, 39.922501)});map.setFitView();var line = new AMap.Polyline({strokeColor:'#80d8ff',isOutline:true,outlineColor:'white'});line.setMap(map);var text = new AMap.Text({text:'',style:{'background-color':'#29b6f6','border-color':'#e1f5fe','font-size':'12px'}});text.setMap(map)function computeDis(){var p1 = m1.getPosition();var p2 = m2.getPosition();var textPos = p1.divideBy(2).add(p2.divideBy(2));var distance = Math.round(p1.distance(p2));var path = [p1,p2];line.setPath(path);text.setText('两点相距'+distance+'米')text.setPosition(textPos)}computeDis();m1.on('dragging', computeDis)m2.on('dragging', computeDis)