我之前看过有关从Google地方信息ID转换为地址的帖子;但我对相反感兴趣。
我有所需位置的GMS地址,但我想获取Google地方ID,以便向用户提供更多详细信息。根据我在Google的iOS API网站上看到的内容,您可以通过自动填充功能(用于用户搜索),所选位置功能或当前位置功能获取Google地方ID。
我的应用程序打算显示我已经拥有地址的多个位置。除了在到达时接收细节之外,用户还可以选择各个位置以获得更多细节。因此,上面列出的功能并不理想。
我还尝试使用Google的Web API,其功能包括" Text Search Requests" &安培; "附近的搜索请求"但是我收到了零结果"。
我还有其他想法和/或看不到的方法吗?
答案 0 :(得分:0)
Google Maps JavaScript API中的Place ID finder怎么样?
place ID是唯一标识地点的文字标识符。它也适用于大多数地点,包括商业,地标,公园和十字路口。这些ID是稳定的,这意味着一旦您确定了地点的地点ID,您就可以在下次查找该地点时重复使用该值。
您可以在Google Places API和多个Google Maps API中使用相同的地点ID。例如,您可以使用相同的地点ID来引用 Places API 中的位置, Google Maps JavaScript API , Google Maps Geocoding API , 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"