如何在Angularjs的Google Map Api中使用placeid获取州和城市

时间:2015-10-19 04:50:29

标签: angularjs google-maps

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

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

1 个答案:

答案 0 :(得分:2)

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

根据Address Component Types

  
      
  • 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);
}
&#13;
html, body {
   height: 100%;
   margin: 0;
   padding: 0;
}

#map {
   height: 100%;
}
&#13;
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places&callback=initMap" async defer></script>
&#13;
&#13;
&#13;