如何在Angularjs的谷歌地图Api中使用placeid获取州和城市



如何使用place_id获取州和城市。我想使用place_id获取州和城市。t

请参阅以下链接Google_map,我想获得以下place_id的州和城市"place_id": "ChIJLfyY2E4UrjsRVq4AjI7zgRY",

Google Place Details响应包含address_components[] field,它表示用于组成给定地址的单独地址组件的数组,您可以从该属性提取城市和州。

根据地址组件类型:

  • administrative_area_level_1 - 表示国家以下一级民事实体。在美国,这些行政级别是州。并非所有国家都表现出这些层次。
  • locality - 表示建制城市或城镇政治实体。

function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 10
    });
    var infowindow = new google.maps.InfoWindow();
    var service = new google.maps.places.PlacesService(map);
    service.getDetails({
        placeId: 'ChIJLfyY2E4UrjsRVq4AjI7zgRY'
    }, function (place, status) {
        if (status === google.maps.places.PlacesServiceStatus.OK) {
            map.setCenter(place.geometry.location);
            /*var marker = new google.maps.Marker({
                map: map,
                position: place.geometry.location
            });*/
            showPlaceDetails(map, place, infowindow);
        }
    });
}
function showPlaceDetails(map, place, infowindow) {
    //parse address details
    var info = '';
    place.address_components.forEach(function (item) {
        if (item.types.indexOf("administrative_area_level_1") > -1) {
            info += '<div>State: ' + item.long_name + '</div>';
        }
        if (item.types.indexOf("locality") > -1) {
            info += '<div>City: ' + item.long_name + '</div>';
        }
    });
    infowindow.setContent(info);
    infowindow.setPosition(place.geometry.location);
    infowindow.open(map);
}
html, body {
   height: 100%;
   margin: 0;
   padding: 0;
}
#map {
   height: 100%;
}
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places&callback=initMap" async defer></script>

最新更新