ios 高德获取定位_解决ios11不支持高德地图API定位功能的方法
在 iOS 11 系統(tǒng)上訪問JS API定位業(yè)務(wù)失敗怎么解決?
蘋果新發(fā)的 iOS 11 操作系統(tǒng)的一大特性是對 http 形式訪問頁面的限制變得非常嚴(yán)格(相比iOS 10 和 iOS 9)。高德提供的JS API功能均支持http和https兩種協(xié)議訪問,在iOS 11操作系統(tǒng)上推薦使用https形式訪問功能頁面和接口。
具體實施步驟:
1、引進JS API文件,最好下載到本地。
HTML
請確保進入的JS API是1.4.1或者更高版本。v=1.4.0表示的是1.4.0版本,引入時請更新為1.4.1版本或者下載對應(yīng)代碼到本地后再引入。
2、使用定位的完整代碼如下:
//獲取用戶所在位置的經(jīng)緯度
var get_position = function(calltype,signdata,qrcodeID,codeBtnFlag){
var map,geolocation;
//加載地圖,調(diào)用瀏覽器定位服務(wù)
map = new AMap.Map('container',{
resizeEnable: true
});
map.plugin('AMap.Geolocation',function(){
//geolocation = new AMap.Geolocation({
//獲取經(jīng)緯度等待的時間
//timeout: 4000//此為設(shè)置的超時毫秒數(shù)。若在指定時間內(nèi)未定位成功,返回超時錯誤信息“TIMEOUT”,默認(rèn)值為無窮大
//});
geolocation = new AMap.Geolocation();
//判斷是否是ios系統(tǒng),如果是,則調(diào)用遠程定位方法
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();
//定位成功,返回經(jīng)緯度信息
AMap.event.addListener(geolocation,'complete', onComplete);
//定位失敗,返回定位出錯信息
AMap.event.addListener(geolocation,'error',onError);
});
//解析定位結(jié)果
function onComplete(data) {
var qiandao_lng = data.position.getLng();
var qiandao_lat = data.position.getLat();
//利用經(jīng)緯度,do something
}
//解析定位錯誤信息
function onError(data) {
alert('定位失敗');
}
}
PS:要想在自己的項目中使用地圖相關(guān)功能,可通過調(diào)用官方地圖接口API,就可以使用其提供的功能,百度、騰訊、高德、谷歌等都有提供,至于使用哪一種看具體項目需求。
總結(jié)
以上是生活随笔為你收集整理的ios 高德获取定位_解决ios11不支持高德地图API定位功能的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: sigkill mysql_Ubuntu
- 下一篇: java 2d绘图 stroke_Jav
