Coğrafi kodlama isteği gönderirken yanıtta döndürülecek alanların listesini belirtmek için alan maskesi kullanabilirsiniz. Alan maskeleri, gereksiz veri istememenizi sağlayarak yanıt gecikmesini azaltmaya yardımcı olur.
Temel coğrafi kodlama yöntemlerinde (Adresi coğrafi kodlama, Konumu coğrafi kodlama ve Yeri coğrafi kodlama), alan maskesi belirtmenin zorunlu olduğu Varış noktası arama yönteminin aksine, yanıt nesnesindeki tüm alanlar varsayılan olarak döndürülür. Temel yöntemler için alan maskesi gerekli olmasa da yanıt gecikmesini azaltmak için alan maskesi kullanmanızı önemle tavsiye ederiz.
Yanıt alanı maskesi tanımlama
Yanıt alanı maskesi, boşluk içermeyen, virgülle ayrılmış bir yol listesidir. Her yol, yanıt nesnesinde benzersiz bir alan belirtir. Yol, üst düzey yanıt alanından başlar ve belirtilen bir alana giden, noktayla ayrılmış bir yol kullanır.
Yanıt alanı maskesini bir isteğe iletmek için $fields veya fields URL parametresini ya da X-Goog-FieldMask HTTP veya gRPC başlığını kullanın.
Örnek alan maskeleri
Aşağıda, ileriye doğru coğrafi kodlama isteğinden gelen yanıtın tamamı gösterilmektedir:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJF4Yf2Ry7j4AR__1AkytDyAE", "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE", "location": { "latitude": 37.422010799999995, "longitude": -122.08474779999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.420656719708511, "longitude": -122.08547523029148 }, "high": { "latitude": 37.4233546802915, "longitude": -122.0827772697085 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", ... }
Alan maskelerinizi, yanıt alanlarının hiyerarşisini kullanarak şu biçimde oluşturun:
topLevelField[.secondLevelField][.thirdLevelField][...]
Hedef alan maskelerini arama
SearchDestinations çağrısı yaparken birincil yer ayrıntıları, girişler, navigasyon noktaları, bina ana hatları (displayPolygon) ve önemli noktalar gibi ihtiyacınız olan tam hedef özelliklerini belirtin:
curl -X POST -d '{"addressQuery": {"addressQuery": "1600 Amphitheatre Pkwy, Mountain View, CA"}}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-FieldMask: destinations.primary.displayName,destinations.primary.displayPolygon,destinations.entrances,destinations.navigationPoints,destinations.landmarks' \
-H "X-Goog-Api-Key: API_KEY" \
https://geocode.googleapis.com/v4/geocode/destinations
Temel coğrafi kodlama alan maskeleri
Örneğin, bir GeocodeAddress yanıtında yalnızca placeId alanını döndürmek için aşağıdaki alan maskesini kullanın:
curl -X GET -H 'Content-Type: application/json' \ -H 'X-Goog-FieldMask: results.placeId' \ -H "X-Goog-Api-Key: API_KEY" \ https://geocode.googleapis.com/v4/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA
Yanıt artık şu şekildedir:
{ "results": [ { "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE" } ] }
viewport alanını döndürmek için alan maskeniz:
-H 'X-Goog-FieldMask: results.viewport'
Yanıt artık şu şekildedir:
{ "results": [ { "viewport": { "low": { "latitude": 37.420654569708496, "longitude": -122.08547618029148 }, "high": { "latitude": 37.423352530291496, "longitude": -122.0827782197085 } } } ] }
Her ikisini de iade etmek için:
-H 'X-Goog-FieldMask: results.placeId,results.viewport'
Yanıt artık şu şekildedir:
{ "results": [ { "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE", "viewport": { "low": { "latitude": 37.420654569708496, "longitude": -122.08547618029148 }, "high": { "latitude": 37.423352530291496, "longitude": -122.0827782197085 } } } ] }
gRPC alan maskeleri
gRPC için yanıt alanı maskesini içeren bir değişken ayarlayın. Ardından bu değişkeni isteğe iletebilirsiniz.
const ( fieldMask = "results.placeId,results.viewport" )
Alan yoluyla ilgili dikkat edilmesi gereken noktalar
Yalnızca ihtiyacınız olan alanları döndürmek için yanıtta yalnızca gerekli alanları ekleyin:
- İşleme sürelerini azaltarak sonuçlarınızın daha düşük gecikmeyle döndürülmesini sağlar.
- Kararlı gecikme performansı sağlar. Tüm alanları seçerseniz veya üst düzeydeki tüm alanları seçerseniz yeni alanlar eklenip yanıtınıza otomatik olarak dahil edildiğinde performans düşüşü yaşayabilirsiniz.
- Daha küçük bir yanıt boyutu sağlar. Bu da daha yüksek ağ işleme hızı anlamına gelir.
Alan maskesi oluşturma hakkında daha fazla bilgi için field_mask.proto sayfasına bakın.