Google Maps JavaScript API 中的Place ID finder 怎么样。
place ID 是唯一标识地点的文本标识符。它也适用于大多数地点,包括企业、地标、公园和十字路口。这些 ID 是稳定的,这意味着一旦您确定了某个地点的地点 ID,您可以在下次查找该地点时重复使用该值。
您可以在 Google Places API 和许多 Google Maps API 中使用相同的地点 ID。例如,您可以在 Places API、Google Maps JavaScript API、Google Maps Geocoding API 中使用相同的地点 ID 来引用地点>、Google Maps Embed API 和 Google Maps Roads API。
这是用于此的示例代码。
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -33.8688, lng: 151.2195},
zoom: 13
});
var input = document.getElementById('pac-input');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.bindTo('bounds', map);
map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);
var infowindow = new google.maps.InfoWindow();
var marker = new google.maps.Marker({
map: map
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
autocomplete.addListener('place_changed', function() {
infowindow.close();
var place = autocomplete.getPlace();
if (!place.geometry) {
return;
}
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(17);
}
// Set the position of the marker using the place ID and location.
marker.setPlace({
placeId: place.place_id,
location: place.geometry.location
});
marker.setVisible(true);
infowindow.setContent('<div><strong>' + place.name + '</strong><br>' +
'Place ID: ' + place.place_id + '<br>' +
place.formatted_address);
infowindow.open(map, marker);
});
}
请注意,此示例需要 Places 库。包括
首次加载 API 时的 libraries=places 参数。为了
示例:
script src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&libraries=places"