Geocode
用來把經緯度轉換為文字地址
因為此較耗費運算資源,所以google把此api列為超過限制數量後為收費項目
取得後看到他無法很精準的取得特定你要的區域規則例如縣或市,所以用if來進行判斷,假如沒有找到市就找國家
MapGeocode(location) {
const context = this;
axios.get('https://maps.googleapis.com/maps/api/geocode/json?latlng=' + location.lat() + ',' + location.lng())
.then((data) => {
console.log(data)
context.locationVerify(data);
})
}
locationVerify(data) {
const context = this;
context.setState({regionName: ''}) //每次點選都把上一次記錄過的地區先清空
data.data.results.forEach((value) => {
if(value.types[0] === "administrative_area_level_3" || value.types[0] === "locality" ||value.types[0] === "postal_code") {
context.setState({regionName: value.formatted_address});
}
})
if(!context.state.regionName) {
console.log('stage2')
data.data.results.forEach((value) => {
if(value.types[0] === "administrative_area_level_2") {
context.setState({regionName: value.formatted_address});
}
})
}
if(!context.state.regionName) {
console.log('stage3')
data.data.results.forEach((value) => {
if(value.types[0] === "administrative_area_level_1") {
context.setState({regionName: value.formatted_address});
}
})
}
}
Last updated