高德地图jsAPI,定位和选择位置

本文介绍了如何利用高德地图的JavaScript API在前端页面上实现定位和选择位置的功能。通过引入API并在script标签中调用相关方法,可以实现在点击地图时获取当前位置的经纬度及周边地点信息。
摘要由CSDN通过智能技术生成

一、前端页面

 
#container {
        width: 700px;
        height: 311px;
    }

<div id="container">
这里是地图控件的容器
</div>

二、js

首先引入api

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.12&key=申请的开发者密匙&plugin=AMap.Geocoder"></script>

接着在script标签中就可以调用了:

//地图初始位置,可以在页面初始化时传入经纬度,也可以ajax获取,不过由于地图初始化较慢,需要考虑同步
var lon = $('#longitude').val()
var lat = $('#latitude').val();
var map;
if (lon > 0) {//初始化到已有地点
    map = new AMap.Map('container', {
        zoom: 20,
        resizeEnable: true,
        center: [lon, lat],
        viewMode: '3D'
    });
} else {//初始化到默认地点
    map = new AMap.Map('container', {
        zoom: 12,
        resizeEnable: true,
        viewMode: '3D'
    });
}
//此插件用来显示当前位置,可在引入API时一同引入
map.plugin('AMap.Geolocation', function () {
    var geolocation = new AMap.Geolocation({
        enableHighAccuracy: true,
        timeout: 10000,
        buttonOffset: new AMap.Pixel(10, 20),
        zoomToAccuracy: true,
        buttonPosition: 'RB'
    });
    map.center = geolocation;
    map.addControl(geolocation);//地图控件右下角显示当前位置
});

var geocoder, marker;
if (!marker) {
    marker = new AMap.Marker();
    map.add(marker);
}

var lnglat;
//地图点击时,获取点击地经纬度
map.on('click', function (e) {
    lnglat = e.lnglat;
    regeoCode();
})
function regeoCode() {
    if (!geocoder) {
        geocoder = new AMap.Geocoder();
    }

    if (!marker) {
        marker = new AMap.Marker();
        map.add(marker);
    }
    marker.setPosition(lnglat);//设置标记的位置
    geocoder.getAddress(lnglat, function (status, result) {
        if (status === 'complete' && result.regeocode) {
            var address = result.regeocode.formattedAddress;
            //$('#address').val(address);//点击地名称
            //$('#longitude').val(lnglat.lng);//经纬度
            //$('#latitude').val(lnglat.lat);
        }
    });
    marker.setMap(map);//在地图上显示一个标记
}
// marker.setPosition([lon, lat]);

三、效果

点击右下角时会定位到当前位置(网络位置),点击地图的其他地方,蓝色标记会移动并获取当地名称和经纬度。

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值