移動端瀏覽器調起百度地圖、高德地圖
阿新 • • 發佈:2019-01-24
類似這樣,點選兩個按鈕,分別調到各自的app客戶端,沒有客戶端跳進移動端的web地圖中。
百度地圖和高德地圖都提供了各自的地圖呼叫的方法。百度api 高德api 百度的稍微麻煩一些,不過還好,我頁面使用的百度地圖,百度地圖的座標系使用的是百度自己基於GCJ-02座標系加密得到的,所以還需要一個轉換,才能得到高德的座標。
下面是一些常用的座標系
目前國內主要有以下三種座標系:
- WGS84:為一種大地座標系,也是目前廣泛使用的GPS全球衛星定位系統使用的座標系。(google地圖國外使用)
- GCJ02:又稱火星座標系,是由中國國家測繪局制訂的地理資訊系統的座標系統。由WGS84座標系經加密後的座標系。(google地圖國內、高德地圖)
- BD09:為百度座標系,在GCJ02座標系基礎上再次加密。其中bd09ll表示百度經緯度座標,bd09mc表示百度墨卡托米制座標。(百度國內)
- 非中國地區地圖,服務座標統一使用WGS84座標。(百度國外)
參考連結:
百度地圖
高德地圖座標體系
CSDN部落格 座標轉換還是用官網提供的好。百度pc端的地圖和lite的地圖,方法不一樣。
接下來就是跳轉了
百度的
var baiduConfig = {
scheme_Android: 'bdapp://map/marker?location='+fdata.baiduGpsLat+','+fdata.baiduGpsLog+'&title=' +fdata.name+'&content='+fdata.address,
scheme_IOS: 'baidumap://map/marker?location='+fdata.baiduGpsLat+','+fdata.baiduGpsLog+'&title='+fdata.name+'&content='+fdata.address,
scheme_web: 'http://api.map.baidu.com/marker?location='+fdata.baiduGpsLat+','+fdata.baiduGpsLog+'&title='+fdata.name+'&content=' +fdata.address+'&output=html'
};
var timeout = 600;
// 判斷作業系統,返回百度的不同作業系統下的介面
function adjustOS(){
var ua = window.navigator.userAgent.toLowerCase();
return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
}
function openClient() {
var startTime = Date.now();
var ifr = document.createElement('iframe');
ifr.src = adjustOS();
ifr.style.display = 'none';
document.body.appendChild(ifr);
var t = setTimeout(function() {
var endTime = Date.now();
if (!startTime || endTime - startTime < timeout + 200) {
window.location.href = baiduConfig.scheme_web;
}
}, timeout);
window.onblur = function() {
clearTimeout(t);
}
}
高德的
var gaodeLoc = [121.43140199998, 31.219317000733];
var marker = new AMap.Marker({
position: gaodeLoc
});
marker.markOnAMAP({
position: marker.getPosition(),
name: fdata.name
});