2016-07-20 7 views
0

GoogleプレイスIDから住所への変換に関する以前の記事を見てきました。しかし、私はその反対に興味があります。Google GMSアドレスからGoogleプレイスIDを取得する方法

私は希望の場所のGMSアドレスを持っていますが、詳細をユーザーに提示するためにGoogleプレイスIDを取得したいと考えています。 GoogleのiOS APIウェブサイトで見たことから、オートコンプリート機能(ユーザー検索用)、選択した場所機能、現在の場所機能からGoogleプレイスIDを取得できます。

私のアプリケーションは、すでに住所がある複数の場所を表示する予定です。ユーザーは、到着時に詳細を受け取るだけでなく、詳細情報を個別に選択することもできます。したがって、上記の機能は理想的ではありません。

「テキスト検索リクエスト」&「近くの検索リクエスト」などの機能でGoogleのWeb APIを使用しようとしましたが、「ゼロの結果」が表示されます。

私が考えていない、あるいは見たことのない方法がありますか?

答えて

0

Google Maps JavaScript APIのPlace ID finderはどうですか?

place IDは、場所を一意に識別するテキスト識別子です。また、ビジネス、ランドマーク、公園、交差点を含むほとんどの場所で利用できます。これらのIDは安定しています。つまり、プレースのプレースIDを特定したら、そのプレースを次に検索するときにその値を再利用できます。

GoogleプレイスAPIと多数のGoogleマップAPIで同じ場所IDを使用できます。たとえば、場所APIで場所、GoogleマップのJavaScript APIGoogleマップジオコーディングAPIGoogleマップの埋め込み用APIGoogleマップの道路を参照するために同じ場所のIDを使用することができます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); 
     }); 
     } 

ただ、この例では、場所、ライブラリを必要とすることに注意してください。 APIを最初に読み込むときには、 libraries = placesパラメータを含めます。

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

: たとえば、
関連する問題