摘要:關于定位,分為GPS定位和網絡定位2種。GPS定位,精度較高,可達到10米,但室内不可用,且超級費電。網絡定位,分為wifi定位和基站定位,都是通過擷取wifi或者基站資訊,然後查詢對應的wifi或者基站位置資料庫,得到的定位地點。定位資料庫可以不斷完善不斷補充,是以,越定位越準确。本文較長的描述了,如果使用高德JS API來實作位置定位、城市定位的方法,包含了IP定位,浏覽器定位,檢索定位等多種網絡定位方法。當然,如果您的手機有GPS功能,那麼使用浏覽器定位的時候,會自動擷取GPS資訊,使得定位更加準确。

--------------------------------------------------------------------------------
一、浏覽器定位
浏覽器定位插件,封裝了标準HTML5定位,并且包含糾偏子產品。
由于核心是HTML5定位,是以浏覽器定位插件僅适用于支援HTML5的浏覽器上,比如,Internet Explorer 9、Firefox、Chrome、Safari 以及 Opera 等。同時,需要浏覽器允許該服務進行定位。如下圖:
另外,浏覽器定位插件也是混合定位,擷取了wifi、基站資訊用以定位,對于擁有 GPS 的裝置,比如 iPhone,由于獲得GPS資訊,使得地理定位更加精确。
浏覽器定位,最好使用在手機浏覽器上,會更加準确,也更加符合使用場景。PC浏覽器上,建議使用IP定位。
定位代碼:
效果圖:
二、IP定位
通過網絡擷取IP資訊,然後查詢IP資料庫,擷取相應的位址資訊。非常适用于城市切換的場景,比如團購、酒店、天氣等。
IP資料庫也是可以完善補充,越來越豐富的,是以也是越使用越準确的。
但如果IP有跳轉,有篡改等,那麼IP定位就會不準确了。
還有一種“偷懶兒”的方法,是高德浏覽器定位的後門,就是使用預設定位。即,在地圖初始化時,不填入中心點center和地圖級别level,那麼高德會自動幫你定位。
但是這也有危險,就是如果定位失敗了,也沒啥提示。
自動定位代碼:
三、檢索定位
當浏覽器定位和IP定位都失敗時,可以通過關鍵字查詢,來定位城市甚至街道。
1、POI檢索,關鍵詞檢索
通過一些簡短的關鍵詞,檢索一個地點,使用AMap.PlaceSearch地點搜尋服務插件。檢索到地點後,預設顯示第一個點的位置即可。
參數對象PlaceSearchOptions允許設定搜尋城市、搜尋資料類别、搜尋結果詳略、搜尋結果排序規則等。
代碼:
2、位址解析
AMap.Geocoder地理編碼服務插件,是指将位址資訊和地理坐标點資訊進行互相轉化,包括将位址資訊轉換為地理坐标點的編碼,将地理坐标點轉換為位址資訊的逆地理編碼。
我們使用位址解析。位址解析,是通過将結構化位址資訊,解析成經緯度,然後設定地圖中心點。
四、源代碼與示例
全部源代碼: