Google Maps API Geocoding Service에서 위도 경도를 얻고 위치를 표시합니다.

하고 싶은 일



Geocoding Service를 사용하여 화면에서 입력한 위치로 이동하고 싶습니다.

코드



sample.html
<div>
    <label><input type="text" id="addressText"></label>
    <button id="search">検索</button>
<div>

이런 ↑이 있었다고 표시하고 싶은 장소를 입력하고 검색 버튼을 누르면 합니다(적당).

gmapsample.js
$(document).on('click', '#search', function () {
    const place = $('#addressText').val();
    getLatLng(place);
});

function getLatLng(place) {
    const geocoder = new google.maps.Geocoder();
    geocoder.geocode({
        address: place
    }, function(results, status) {
        //成功
        if (status == google.maps.GeocoderStatus.OK) {
            //同じズーム値のまま
//          map.panTo(results[0].geometry.location);
//          map.setCenter(results[0].geometry.location);
            //表示領域を調整
            map.fitBounds(results[0].geometry.viewport);
        //失敗
        } else {
            alert('Geocode was not successful for the following reason: ' + status);
        }
    });
}

화면에서 입력된 값을 Geocoder에 전달하여 결과를 가져오고 이동하는 흐름입니다.
화면으로부터의 입력은 「도쿄」라든지 「다이버시티」라든지 어딘가의 주소등을 상정하고 있습니다.
이동의 부분입니다만, 지금의 줌치 그대로 표시하고 싶은 경우는 map.panTo(results[0].geometry.location); 이나 map.setCenter(results[0].geometry.location); 라고 합니다.
또, 표시 영역을 조정해 좋은 느낌으로 표시하고 싶은 경우는 map.fitBounds(results[0].geometry.viewport); 라고 할 수 있습니다.

그건 그렇고, Geocoding Service는 비동기입니다

참고 : Geocoding Service

좋은 웹페이지 즐겨찾기