高德地图JS-API开发—定位

// 定位
        function local() {
            AMap.plugin('AMap.Geolocation', function() {
                var geolocation = new AMap.Geolocation({
                    enableHighAccuracy: true, //是否使用高精度定位,默认:true
                    timeout: 10000, //超过10秒后停止定位,默认:5s
                    buttonPosition: 'LB', //定位按钮的停靠位置
                    buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
                    zoomToAccuracy: false, //定位成功后是否自动调整地图视野到定位点
                    panToLocation: false, //定位成功后将定位到的位置作为地图中心点,默认:true
                    showCircle: false, //定位成功后用圆圈表示定位精度范围,默认:true
                    extensions: "all", // JSAPI在定位成功的时候会将得到的经纬度进行逆地理编码后获取地址信息,以方便开发者的进一步使用;
                    useNative: true, //是否使用安卓定位sdk用来进行定位,默认:false,适用于同时在APP中使用安卓定位sdk并在APP WebView中使用了JSAPI的开发者。开启后,将优先尝试使用sdk进行定位,失败后依次尝试浏览器定位和IP定位。
                });
                map.addControl(geolocation);
                geolocation.getCurrentPosition(function(status, result) {
                    if (status == 'complete') {
                        onComplete(result)
                    } else {
                        onError(result)
                    }
                });
            });
            //解析定位结果
            function onComplete(data) {
                localStorage.setItem("local", data.position)
            }
            //解析定位错误信息
            function onError(data) {
                alert('定位失败,请刷新页面获取定位')
            }
        }

注:浏览器定位一般不精确,需要使用HTTPS协议提高精确度

可以通过调用HTML5 Geolocation API来获取用户的经纬度信息然后再使用高德地图JS API实现地图展示和定位标记等功能。同时,要在Android平台上使用定位SDK进行定位,需要在HTML5+运行环境中进行配置和调用。 具体步骤如下: 1. 在HTML5+项目中引入高德地图JS API定位SDK相应的插件。 2. 在JS代码中使用HTML5 Geolocation API获取经纬度信息,并调用定位SDK进行定位。 3. 在定位成功后,调用高德地图JS API实现地图展示、定位标记等功能。 下面是一个示例代码: ```javascript // 获取地理位置信息 navigator.geolocation.getCurrentPosition(function(position) { // 获取经纬度信息 var lat = position.coords.latitude; var lng = position.coords.longitude; // 调用定位SDK进行定位 plus.geolocation.getCurrentPosition(function(p) { // 获取定位成功后的经纬度信息 var lat = p.coords.latitude; var lng = p.coords.longitude; // 在地图上展示定位标记 var map = new AMap.Map('container', { center: [lng, lat], zoom: 16 }); var marker = new AMap.Marker({ position: [lng, lat] }); map.add(marker); }, function(e) { // 定位失败 alert('定位失败:' + e.message); }); }, function(error) { // 获取地理位置失败 alert('获取地理位置失败:' + error.message); }); ``` 需要注意的是,如果要在WebView中使用HTML5+运行环境进行定位,还需要进行相应的WebView配置,具体可以参考HTML5+开发文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PZR001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值