1. 程式人生 > >移動端瀏覽器調起百度地圖、高德地圖

移動端瀏覽器調起百度地圖、高德地圖

這裡寫圖片描述
類似這樣,點選兩個按鈕,分別調到各自的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
});