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

时间:2016-07-20 04:04:45

标签: ios swift google-maps-api-3 google-places-api

我之前看过有关从Google地方信息ID转换为地址的帖子;但我对相反感兴趣。

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

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

我还尝试使用Google的Web API,其功能包括" Text Search Requests" &安培; "附近的搜索请求"但是我收到了零结果"。

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

1 个答案:

答案 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"