如何从Google GMS地址获取Google Place ID



我以前看过关于从Google Place ID转换为地址的帖子;然而,我对相反的情况感兴趣。

我有所需位置的GMS地址,但我想获得Google Place ID,以便向用户提供更多详细信息。根据我在谷歌iOS API网站上看到的内容,您可以通过自动完成功能(用于用户搜索)、选定位置功能或当前位置功能获得Google Place ID。

我的应用程序打算显示我已经有地址的多个位置。除了在到达时接收详细信息之外,用户还可以选择单独的位置以获得更多详细信息。因此,上面列出的功能并不理想。

我也尝试过使用谷歌的网络API的功能,如"文本搜索请求"&"附近搜索请求",但我收到"零结果"。

还有其他我没有想到和/或看到的方法吗?

Google Maps JavaScript API中的Place ID查找器怎么样。

地点ID是唯一标识一个地点的文本标识符。它也适用于大多数地点,包括商业、地标、公园和十字路口。这些ID是稳定的,这意味着一旦您确定了某个地点的地点ID,您就可以在下次查找该地点时重用该值。

您可以在Google Places API和许多Google Maps API中使用相同的地点ID。例如,您可以使用相同的地点ID引用地点API谷歌地图JavaScript APIGoogle地图地理编码API中的地点、Google地图嵌入API以及GoogleMaps道路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=place参数。对于示例:

script src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&libraries=places"

最新更新