Baidu與Google地圖API初探

2020-12-23 開源中國

關於代碼重構的靈魂三問:是什麼?為什麼?怎麼做?>>>

前天周六,有個好友過來玩,他說想在他的網站中加入地圖導航模塊,但不知道選擇哪個第三方Map API

在網上查了下Baidu、Google、QQ和MapBar等4種Map API(都是採用JS開放API),也查看了它們的SDK開發文檔,談談自己的體會


Map API文檔

BMap API(Baidu)與google.maps API(Google)文檔相對最完備、詳盡、簡潔,並且給出了很多學習示例,非常適合初學者入門學習、應用開發

QMap API(QQ)與MapBar API(MapBar)文檔雖然也比較完備,但示例與代碼分開了,不能很好所見即所得的體現代碼與效果相關性


Map 功能推薦

BMap API和Google.maps API,應該就可以滿足絕大部分需求

就易用性和色彩柔和性,推薦BMap API(Baidu)

就精確性和世界地圖,推薦Google.maps API(Google)

精確性:

Baidu BMap提供小數點後六位的精度,如:天安門(116.397128, 39.916527);

Google google.maps則提供小數點後14位的精度,如:紐約(40.69847032728747, -73.9514422416687)

世界性:

Baidu BMap僅提供中國區域,也包括港、澳,但目前還不包含臺灣(可能百度日本分公司的地圖中含有臺灣);

Google google.maps則提供全球區域的地圖(支持本地化語言)

3D效果:

Baidu BMap目前僅提供中國幾個大城市3D地圖(如北、上、廣和深圳)

Google google.maps則支持大部分國家的車載導航3D地圖(在中國僅支持部分城市,如上海)

API風格:

BMap API和google.maps的API接口略有不同,BMap模塊化分層設計更加獨立;兩者的API風格,可以代表其它幾款開放的Map API風格

QMap API與google.maps API接口的風格很類似,MapBar API與BMap API接口風格則很雷同,甚至有些函數接口名都相同,如centerAndZoom

兼容性:

上面四款地圖API,都採用js實現訪問調用,因此對瀏覽器兼容性非常重要

BMap API:支持IE6.0+、Chrome、FF 3.0+、Opera 9.0+、Safari 3.0+,以及國內主要瀏覽器,如遨遊、360、QQ、Baidu、世界之窗等瀏覽器,兼容性較好

google.maps API:支持W3C標準(官方沒明確給出兼容的相關瀏覽器),且在在支持定位功能的瀏覽器上,可以調用google Geolocation API(智慧型手機上應用廣泛)

註:據了解,google map今年還暫未拿到在中國大陸的經營許可證,因此其地圖訪問服務有時會被GFW屏蔽掉,甚至不可用


簡單對比 

BMap API(Baidu)和google.maps API(Google)——都是以「天安門」為參照系原點

BMap API(Baidu)

<!doctype html><html><head>    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />    <title>Baidu Map V1.2</title>    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2&services=true">	    <!-- add baidu map api -->    </script></head><body>    <div id="container" style="width: 600px; height: 400px;">    </div></body></html><script type="text/javascript">    var map = new BMap.Map("container");            	    // new Map    var point = new BMap.Point(116.397128, 39.916527);      // Location, (經度, 緯度)    map.centerAndZoom(point, 15);                   	    // show Map    // 添加縮放功能    map.enableScrollWheelZoom();    map.enableKeyboard();</script>

效果圖如下:

google.maps API(Google)

<!doctype html><html><head>    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />    <meta http-equiv="content-type" content="text/html; charset=gbk" />    <title>Google Map V3</title>    <link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"        rel="stylesheet" type="text/css" />    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">	<!-- add google map api -->    </script></head><body onload="initialize()">    <div id="container" style="width: 600px; height: 400px;">    </div></body></html><script type="text/javascript">    function initialize() {        var point = new google.maps.LatLng(39.916527, 116.397128); 	          // location, (緯度, 經度)        var option = {            zoom: 12,            center: point,            mapTypeId: google.maps.MapTypeId.ROADMAP        }        var obj = document.getElementById("container");                       // container        var map = new google.maps.Map(obj, option); 			              // show map    }</script>

效果圖如下:


另兩大巨頭的Map API(Bing與Yahoo!)

Bing Map API基於Virtual Earth的API,js接口調用,目前只有英文版(暫沒找到中文版)

Yahoo! Map API:提供FlashAjax and Map Image APIs,js接口調用,目前也只有英文版(暫沒找到中文版)

註:在Yahoo! Map API 看到,好像要在2011年9月13號關閉Map API服務,建議用戶轉到其合作夥伴Ovi Maps API(Nokia)

We are shutting down this service on September 13, 2011. We suggest using maps from our partner Nokia. Please visit the Ovi Maps API for more information.


背後的故事

MapBar: 國內地圖提供商,早期與百度合作,BMap API採用的便是MapBar,因此它們的API接口有些雷同(上面我已舉例)

MapABC:國內地圖提供商,早期與Google合作,google.maps API起初採用MapABC,後來google做的更好、更靈活

51Map:    國內地圖提供商,特色服務是提供地圖下載,可以實現本地桌面地圖(類似手機上的凱立德3D地圖)


總體感覺,各家Map API各有千秋,BMap API和google.maps API從開放、維護等角度,代表Map API兩大主流,可以滿足絕大部分用戶需求

QMap API和MapBar API都是後起之秀,專注技術的同時,也可以優化、增加一些API文檔,畢竟開放API就是為了讓更多的人去使用嘛

IT技術需要競爭,因為競爭,所以創新;因為創新,所以開放;因為開放,所以進步,祝願中國IT領域不斷創新、開放、進步、超越




原文連結:

http://blog.csdn.net/sunboy_2050/article/details/6598020

相關焦點

  • Infraworks模型生成器裡的地圖無法加載的原因及變通辦法
    有很多的時候,並不是不能顯示地圖,只是加載地圖所需要的時間比較長,可以再等等從桌面應用程式(Autodesk Desktop App)獲取更新檢查看看能不能map.bing.com瀏覽地圖?*.amazonaws.com*.pubnub.com*bing.com 或 *bing.com/api/maps注意:如果在模型生成器中不能使用地圖搜索
  • 一張地圖走天下 新版google地圖搜索試用
    當然,作為搜尋引擎行業的龍頭老大,製作電子地圖也是不甘心屈具人後,不久前對其google map進行了革新,推出了改進版的產品。筆者有幸應google邀請,前往google中國公司同google map的設計師一同了體驗新版的google map。下面就是新版google map的相關試用手記。
  • Android學習之Build環境初探
    這裡略過對android在手機上的文件系統框架的闡述(google或者baidu都能幫助你找到對應的信息),主要看google是如何把生成合適的rootfs的工作整合到它的build體系當中,同時,會順帶看一下CyanogenMod中對應各種機型的build機制。
  • 50 個超實用的機器學習API,拿好不謝!
    :http://apicloud.me/apis/facerect/demo/地址:https://cloud.google.com/vision/地址:https://www.ibm.com/watson/services/visual-recognition/地址:https://imagga.com/solutions/auto-tagging.html
  • 「Android」我的個人地圖!
    app首先先介紹一下這個app的功能一共6個:1.定位「我的位置」2.經緯度查詢位置3.地址查詢位置4.衛星地圖切換5.普通地圖切換6.駕車路徑規劃功能不多說,直接上圖:所有功能列表:- res目錄 存放我們的app中的一些圖片資源,還有layout排版文件等1.基於百度地圖的開發很多坑,尤其是keymap的獲取,我在這裡貼一下地址http://lbsyun.baidu.com/index.php?
  • 使用百度地圖精準定位經緯度坐標的方法
    如何在百度地圖上精確定位自己的地理位置,很多朋友都不是很清楚。 小空在使用百度地圖的過程中有一些經驗體會,願與大家分享, 以方便大家可以精確的定位自己地理位置,少走彎路。打開百度地圖「坐標拾取系統」:輸入網址」http://api.map.baidu.com/lbsapi/getpoint/index.html「,進入」坐標拾取系統「進入」坐標拾取系統「後,就可以方便的查詢自己的精準地理信息了,我們以」海爾工業園「為例,尋找它的詳細坐標。
  • 你要的地圖網站素材全在這裡
    ,還提供三種模板:統計地圖、業務地圖、高級地圖。10.360ºAerial Panoramas網站連結:http://www.airpano.com/google-map.php11.百度地圖個性在線編輯器網站連結:http://developer.baidu.com/map/custom/簡介:定製個性地圖是支持用戶使用
  • 無需「翻牆",給你解鎖Google地圖幾個姿勢
    不"翻牆"也能使用Google地圖   1   什麼?用Google地圖要「翻牆」?你被忽悠了孩子!   很長一段時間谷歌被「牆」了,直接在網址欄輸入google.com也無法進入,谷歌地圖APP在國內也不能正常使用了。
  • Google地圖怎麼設置中文 谷歌地圖app設置語言為中文
    Google地圖是一款知名的地圖導航客戶端,這是一款很好用的地圖軟體,Google地圖怎麼設置中文呢,不少人可能不是很清楚,下面就和小編一起來看看吧!  Google地圖怎麼設置中文方法  1、點擊打開谷歌地圖app,然後在頁面上點擊我們的頭像,然後點擊彈出框中的「google account」,選擇谷歌帳號進入。
  • 一張圖看懂Google地圖的十年
    十年以來,Google地圖團隊為了讓每個用戶更容易探索大千世界盡心盡力。如果讓時間回到2005年,那個時候人們依賴於紙質地圖、列印出來的地圖路線、便籤紙甚至指南針來導航。Google地圖團隊每天都為尋找最佳路徑努力,無論是上班的路線,還是接送孩子甚至朋友會面時買瓶飲料的路線。為了人們更快更方便找到目的地,有了Google地圖以及最佳的路線。以下是Google地圖的發展簡史。
  • 谷歌開放電力能耗監測軟體PowerMeter API
    谷歌在官方博客上宣布,已經開放了PowerMeter的API,將代碼等相關情況展示在谷歌代碼code.google.com
  • 【收藏】史上最全地圖合集,裡面全是黑科技(附高清地圖下載器)
    也就是大家可以在線看看,簡單操作的地圖:谷歌地圖、谷歌地球、百度地圖、搜狗地圖、騰訊地圖、高德地圖,搜搜地圖、圖吧、地球在線、城市吧、E都市、必應地圖、蘋果地圖、維基地圖等等。,後臺回復「高清地圖下載工具」可獲取此神器及使用教程)主要有奧維互動地圖瀏覽器、全能電子地圖下載器、稻歌Google Map截獲器、google earth pro (免費)、水經注、BIGE等等,可以瀏覽下載谷歌地圖、百度地圖、必應地圖等各種地圖瓦片及數據:
  • OpenAPI Generator v4.1.1 發布,OpenAPI 規範自動生成代碼
    Avro Schema 對 Avro 模式生成器的增強 添加新的 Apache Avro 生成模式C++  cpp-qt5-client: 改進測試 cpp-qt5-client: 添加 valgrind 內存測試 cpp-qt5-client: 修復 api-body
  • 帶有Angular和Spring App的Google Recaptcha示例
    請注意下面給出的代碼中的一些內容:Google Recaptcha網址,例如https://www.google.com/recaptcha/api/siteverify谷歌googleRecaptchaSecretKey是自動裝配的。
  • 還在用地圖看世界?試試谷歌(google)地球吧
    地理位置同時Google Earth 可能是這個世界上最廉價的了解世界的方式,探索者結合了街景、視頻、地圖等資源,讓你在瀏覽器裡就能了解這個世界。艾菲爾鐵塔同時你如果點擊地標型建築時右上角會有最新的維基百科可參照。
  • 從人臉識別到文本分析,50+超實用的 API 推薦清單
    Kairoshttps://www.kairos.com/docs/api/它可快速將情緒分析和人臉識別功能添加到應用和服務平臺。11.Geneeahttps://api.geneea.com/可以對提供的原始文本、從給定 URL 中提取的文本或直接提供的文檔進行分析(自然語言處理)。5.
  • 多虧了Google,裡約貧民窟終於被搬上地圖
    但似乎是有意而為,這些棚戶區甚至從來就沒有在地圖上出現過。終於「上地圖」了所以該公司和當地NGO、AfroReggae合作,用了數年時間,試圖繪製出當地棚戶區的地圖。這個合作項目的名稱是「Tá no Mapa」,即「上地圖」。在2016年夏季奧運會開始前,該項目已經取得了巨大的進展。
  • Google 黑客常用搜索語句一覽 | 原力計劃
    inur:Login 將只在baidu.com中查找urI中含有Login的網頁site:baidu.com filetype:pdf 將只返回baidu.com站點上文件類型為pdf的網頁link:www.baidu.com 將返回所有包含指向www.baidu.com的網頁related:www.llhc.edu.cn
  • Google推出Coordinate:整合地圖 助力企業調度
    這項服務將google的地圖服務和地理定位服務搭配在一起,加上API和一套移動人力調度系統(有Web版和Android智慧型手機版和平板電腦版),可以讓企業組織提高任務分配和調度的效率,這是Google首次將自己在地圖和定位的工作運用到商業領域