解决ios11不支持高德地图API定位功能的方法

       在 iOS 11 系统上访问JS API定位业务失败怎么解决?
       苹果新发的 iOS 11 操作系统的一大特性是对 http 形式访问页面的限制变得非常严格(相比iOS 10 和 iOS 9)。高德提供的JS API功能均支持http和https两种协议访问,在iOS 11操作系统上推荐使用https形式访问功能页面和接口。
       具体实施步骤:
1、引进JS API文件,最好下载到本地。

HTML
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.0&key=您申请的key值"></script> 

       请确保进入的JS API是1.4.1或者更高版本。v=1.4.0表示的是1.4.0版本,引入时请更新为1.4.1版本或者下载对应代码到本地后再引入。
2、使用定位的完整代码如下:

//获取用户所在位置的经纬度
var get_position = function(calltype,signdata,qrcodeID,codeBtnFlag){

    var map,geolocation;
    //加载地图,调用浏览器定位服务
    map = new AMap.Map('container',{
        resizeEnable: true
    });
    map.plugin('AMap.Geolocation',function(){
        //geolocation = new AMap.Geolocation({
            //获取经纬度等待的时间
            //timeout: 4000//此为设置的超时毫秒数。若在指定时间内未定位成功,返回超时错误信息“TIMEOUT”,默认值为无穷大
        //});
        geolocation = new AMap.Geolocation();
        
        //判断是否是ios系统,如果是,则调用远程定位方法
        
        if (AMap.UA.ios) {
                
            //使用远程定位,见 remogeo.js
            var remoGeo = new RemoGeoLocation();

            //替换方法
            navigator.geolocation.getCurrentPosition = function() {
                return remoGeo.getCurrentPosition.apply(remoGeo,arguments);
            };

            //替换方法
            navigator.geolocation.watchPosition = function() {
                return remoGeo.watchPosition.apply(remoGeo, arguments);
            };
        }
        
        map.addControl(geolocation);
        
        //询问是否允许获取地理信息
        geolocation.getCurrentPosition();
        //定位成功,返回经纬度信息
        AMap.event.addListener(geolocation,'complete', onComplete);
        //定位失败,返回定位出错信息
        AMap.event.addListener(geolocation,'error',onError);      
    });
    
    //解析定位结果
    function onComplete(data) {
        var qiandao_lng = data.position.getLng();
        var qiandao_lat = data.position.getLat();
        //利用经纬度,do something
    }
    //解析定位错误信息
    function onError(data) {
        alert('定位失败');
    }
}

       PS:要想在自己的项目中使用地图相关功能,可通过调用官方地图接口API,就可以使用其提供的功能,百度、腾讯、高德、谷歌等都有提供,至于使用哪一种看具体项目需求。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,752评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,770评论 4 61
  • 6,开始客观地接纳自己 2句话1问答让我更接纳自己: 1)“如果你是一颗草莓,在樱桃堆儿里就算低头也是藏不住的” ...
    亲爱的悦蓉阅读 1,625评论 1 2
  • 感赏女儿一放学就忙着照顾生病的妈妈,倒水拿药,还用毛巾帮妈妈擦拭身体,拿冷毛巾放置额头降温,有女儿这么细心照顾,果...
    桃儿妈妈阅读 1,396评论 1 8
  • 天轮渡,七七数,日伪长驱蛮直入,占我中原吞江沪。 国耻碌,人人怵,上下同心坚如铸,复我河山依如故。 名词解析:1....
    理想者的执念阅读 2,744评论 0 8

友情链接更多精彩内容