2014-01-21 332 views
1

如果我有位置的經度和緯度,我可以使用反向geocoding獲取有關位置的基本信息(如地址),但我想了解更多信息。我使用Places API作爲搜索欄,並且返回大量數據,但我無法從經度和緯度中獲得位置。從位置獲取位置

我發現places API支持place details,但爲此我需要一個參考,我無法從任何地方得到。

注意:我正在使用dart寫這篇文章,但dart api只是javascript的一個封裝,這就是爲什麼我將它標記爲兩者的原因。

+0

你能從一個地址得到一個地方嗎?如果是這樣,那麼首先從經緯度得到地址... – dandavis

+0

我已經想過,但它似乎效率低下。一定有更好的方法。 –

+0

hmm。我可以看到你的屏幕名稱是apropos ... – dandavis

回答

1

PlaceResult對象包含reference屬性,應在PlaceDetailsRequest中使用該屬性,該屬性提供給PlacesService.getDetails

+0

我沒有PlaceResult開始,我只有LatLng對象。 –

+0

您首先需要使用'PlaceService'執行'nearbySearch'或'radarSearch'。 –

+0

我可以指望一個地方的靜態參考嗎? –

1

我結束了與PlaceService.textSearch路線。這並沒有我想象的那麼骯髒。我結束的功能看起來像這樣:

void placeFromLocation(LatLng location, void callback(PlaceResult)) { 
    GeocoderRequest geocoderRequest = new GeocoderRequest() 
     ..location = location; 
    geocoder.geocode(geocoderRequest, (List<GeocoderResult> results, GeocoderStatus status) { 
     if(status == GeocoderStatus.OK) { 
      TextSearchRequest request = new TextSearchRequest() 
       ..query = results[0].formattedAddress 
       ..location = results[0].geometry.location 
       ..radius = 40; 
      placeService.textSearch(request, (List<PlaceResult> results, PlacesServiceStatus status) { 
       if(status == PlacesServiceStatus.OK) { 
        callback(results[0]); 
       }else{ 
        print("Not place found"); 
       } 
      }); 
     }else{ 
      print("Error geocoding address"); 
     } 
    }); 
}