今度は地図をクリックしたら、クリックされた場所にマーカーを付けてその場所の経度・緯度と住所を取得してリストに追加してみる。
地図クリックで座標と住所を取得
地図をクリックすると座標と住所が取れます。↓↓↓
| 住所 | lat | lng | コメント |
|---|---|---|---|
| {{ val.address }} | {{ val.lat }} | {{ val.lng }} | {{ val.comment }} |
コードは、こんな感じ。
var app = new Vue({
el: "#input-form",
data: {
adrs_list: []
}
});
var map = new google.maps.Map(document.getElementById('gmap'), {
center: {lat: 43.0553626, lng: 141.341062},
zoom: 12,
mapTypeId: 'roadmap'
});
map.addListener('click', function(e){
map.panTo(e.latLng);
getAddress(e.latLng);
});
function getAddress(latlng) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
latLng: latlng
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0].geometry) {
var address = results[0].formatted_address.replace(/^日本(、|,)/, '');
app.adrs_list.push({address: address, lat: latlng.lat(), lng: latlng.lng(), comment: ""});
var marker = new google.maps.Marker({ position: latlng,map: map ,title: address ,animation: google.maps.Animation.DROP });
}
} else {
app.adrs_list.push({address: "", lat: latlng.lat(), lng: latlng.lng(), comment: status });
}
});
}