Google Maps API - 地理編碼服務( 地址定位)
文章推薦指數: 80 %
啟用後,在資訊主頁最下方的API 就會看到Google Maps Geocoding API 的訊息, 依據Google API 標準方案,免費版本一天可以呼叫這個API 2500 次,每秒可以50 次,對於 ...
ARCHIVE
ABOUT
CONTACT
Designthinkingiseverywhere
GoogleMapsAPI-地理編碼服務(地址定位)
一開始使用地圖,總會用經緯度來標記位置,但經緯度往往不夠直覺,而且要知道某個地點的經緯度也是個問題,所以這時就必須使用GoogleMapsAPI的地理編碼服務來實現「地址定位」,只要輸入對應的地址,就可以在地圖上標記。
啟用GoogleMapsGeocodingAPI
要使用地理編碼服務,首先要前往GoogleAPIConsole,進入之後,建立新的專案或是選擇現有的專案(不知道怎麼做可以參考GoogleMaps(1)-網頁載入地圖(起手式)),接著點選上方「啟用API和服務」。
在搜尋欄位搜尋「GoogleMapsGeocodingAPI」,找到後點選並且啟用。
啟用後,在資訊主頁最下方的API就會看到GoogleMapsGeocodingAPI的訊息,
依據GoogleAPI標準方案,免費版本一天可以呼叫這個API2500次,每秒可以50次,對於自己要練習或是簡單的程式,應該都相當夠用。
使用地址定位
要使用地址定位,第一步要先透過google.maps.Geocoder物件存取程式碼內的GoogleMapsAPI地理編碼服務,而Geocoder.geocode()方法會初始化對地理編碼服務的要求。
geocoder=newgoogle.maps.Geocoder();
接著使用geocoder.geocode({'address':address},callback(results,status))對地址進行地理編碼,在擷取到地理編碼時會依序傳遞兩個參數results和status,results包含以下的結果物件,而最常使用的應該就是geometry.location,因為這回傳的就是地圖常用的經緯度LatLng。
results[]:{
types[]:string,
formatted_address:string,
address_components[]:{
short_name:string,
long_name:string,
postcode_localities[]:string,
types[]:string
},
partial_match:boolean,
place_id:string,
postcode_localities[]:string,
geometry:{
location:LatLng,
location_type:GeocoderLocationType
viewport:LatLngBounds,
bounds:LatLngBounds
}
}
然而status回傳的是成功與否的狀態,如果回傳OK表示順利剖析地址並且已至少傳回一個地理編碼,以下面的範例來說,就可以透過地址編碼,將地圖標記放在「總統府」的地址上。
範例:使用地址定位
varmap,geocoder;
functioninitMap(){
geocoder=newgoogle.maps.Geocoder();
map=newgoogle.maps.Map(document.getElementById('map'),{
zoom:17
});
varaddress='總統府';
geocoder.geocode({'address':address},function(results,status){
if(status=='OK'){
map.setCenter(results[0].geometry.location);
varmarker=newgoogle.maps.Marker({
map:map,
position:results[0].geometry.location
});
}else{
console.log(status);
}
});
}
簡單的查詢地址功能
如果已經會使用地址定位,就可以來透過HTML的input和button做點變化,下面的例子在網頁中放入一個輸入欄位,輸入地址之後按下定位,就可以將自己指定的地址在地圖上置中,並放上標記。
範例:使用地址定位
submitBtn.on('click',function(){
console.log(addressInput.val());
geocoder.geocode({
'address':addressInput.val()
},function(results,status){
if(status=='OK'){
map.setCenter(results[0].geometry.location);
varmarker=newgoogle.maps.Marker({
map:map,
position:results[0].geometry.location
});
}else{
console.log(status);
}
});
});
參考資料
地理編碼服務是參考Google官方文件地理編碼服務,如果想要了解results回傳的參數細節用法就可以前往閱讀,文件的後半段也提到一些地址反查的功能,不過目前還沒想到該怎麼用,就等有用到的時候再寫篇文章記錄一下好了。
BackHome
ArticleList
ShareonFacebook
ShareonGoogle+
ShareonTwitter
BacktoTop
有興趣瞧瞧其他新文章嗎?
前一篇文章:
下一篇文章:
您可以閱讀其他相關文章,或瀏覽所有文章
Copyright2019|AllRightsReserved.DesignedbyOXXO.STUDIO
延伸文章資訊
- 1Resolve and code addresses using geocoding
Documentation for HERE's HERE Maps API for Javascript. ... The HERE Geocoding and Search API unlo...
- 2Google Maps API - 地理編碼服務( 地址定位)
啟用後,在資訊主頁最下方的API 就會看到Google Maps Geocoding API 的訊息, 依據Google API 標準方案,免費版本一天可以呼叫這個API 2500 次,每秒可以...
- 3Google geocode example - gists · GitHub
Google geocode example. GitHub Gist: instantly share code, notes, and snippets.
- 4Overview | Geocoding API - Google Developers
Geocoding converts addresses into geographic coordinates to be placed on a map. Reverse Geocoding...
- 5Google Geocode API & JavaScript Tutorial - YouTube