前言
取得一個地址要將它定位在地圖上,需要將該地址轉成經緯度,
而 Azure Map 的 Search API 就提供這樣子的功能,
也提供模糊查詢及批次查詢的方式,
以下就來測試看看,
練習
1.查詢 112052 台北市北投區承德路六段120號
的經緯度
1 | GET https://atlas.microsoft.com/search/address/json?api-version=1.0&query=112052 台北市北投區承德路六段120號&limit=1&subscription-key={subscription-key} |
透過 Postman 可以發現查出來的 經緯度 為 (25.10206, 121.51269
),信心度 0.701
,如下圖,
透過 Bing Map 查出來的 經緯度為 (25.102058, 121.512687
),如下圖,
Google Map 查出來的經緯度為 (25.10363, 121.51488
),如下圖,
比較起來,還是 Google Map 比較精確一點,2 者定位有些差距。如下圖,
Bing Map 的圖資似乎沒有更新那麼及時,像有些新開發的地區,就沒更新到
透過 C# 程式碼如下,
1 | public async Task<Point> ParseAddressToPointAsync(string address) |
註: 可以加上 countrySet 來限定 Search 的 國家
2.查詢 台北圓山飯店
的經緯度
1 | GET https://atlas.microsoft.com/search/address/json?api-version=1.0&query=112052 台北市北投區承德路六段120號&limit=1&subscription-key={subscription-key} |
透過 Postman 可以發現查出來的 經緯度 為 (25.07739, 121.52593
),信心度高達 1
,如下圖,
Google Map 查出來的經緯度為 (25.07896, 121.52651
),如下圖,
這次比較起來,都在飯店的範圍內。如下圖,
3.如果一次要查多個地址,則可以使用批次查詢,
例如,查詢 112052 台北市北投區承德路六段120號
及 台北圓山飯店
的經緯度
1 | POST https://atlas.microsoft.com/search/address/batch/sync/json?api-version=1.0&subscription-key={subscription-key} |
112052 台北市北投區承德路六段120號
的經緯度一樣為 (25.10206, 121.51269
),
但 台北圓山飯店
查出來的經緯度為(25.07739, 121.52593
) 跟 GET 有些許差異。
如果想要透過 經緯度 查出 地址 ,則可以透過 Get Search Address Reverse 來找出 地址哦~
- 註 1: 除了門牌號碼外,有些有名的地方,例如 台中港 也是可以 Search 得到
- 註 2: 地址中,請勿包含其他不相關的資訊,以免 Search 不到
參考資源
Get Search Address
Get Search Address Batch
Get Search Address Reverse