Bölge aramak ve yerler hakkında daha fazla bilgi edinmek için Android için Haritalar SDK'sı ile Places Hizmeti'ni ve Geocoding API'yi kullanabilirsiniz. Yerler Hizmeti ve Geocoding API, yer kimlikleri elde etmek için güçlü ve kararlı alternatiflerdir. Zaten yer kimlikleri kullanıyorsanız bu kimlikleri sınırlar için veriye dayalı stil ile yeniden kullanabilirsiniz.
Android için Haritalar SDK'sına Yerler Hizmeti ve Coğrafi Kodlama'yı aşağıdaki yöntemlerle ekleyin:
- Android için Yerler SDK'sı, yerler hakkında bilgi döndüren yöntemleri içeren bir Android kitaplığıdır.
- Places API, HTTP isteklerini kullanarak yerlerle ilgili bilgileri döndürür.
- Coğrafi kodlayıcı sınıfı, kullanıcı girişinden dinamik olarak coğrafi kodlama ve ters coğrafi kodlama yapabilir.
- Geocoding API, bilinen statik adresleri coğrafi kodlamanıza olanak tanır.
Yerler Hizmeti'ni kullanma
Yer kimliği bulmak için metin aramayı (yeni) kullanma
Alan maskesinde places.id
belirterek bölge verilerini içeren bir yer kimliği almak için Places API'deki Metin Arama (Yeni) REST API'sini kullanabilirsiniz. Yer kimliği istemek için metin arama (yeni) özelliğinin kullanılması ücretsizdir. Daha fazla bilgi edinin.
Örneğin, Kaliforniya, Trinidad için yer kimliğini almak üzere aşağıdaki API çağrısını yapabilirsiniz:
curl -X POST -d '{ "textQuery" : "Trinidad, CA" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.id' \ 'https://places.googleapis.com/v1/places:searchText'
Bölgeleri bulmak için Places Otomatik Tamamlama'yı kullanma
Android için Places SDK'sındaki Yerler Otomatik Tamamlama hizmeti, kullanıcılarınızın bölge aramasını sağlamanın kolay bir yolunu sunar. Yerler Otomatik Tamamlama hizmetini yalnızca bölgeleri döndürecek şekilde yapılandırmak için tür filtresini PlaceTypes.REGIONS
olarak ayarlamak üzere AutocompleteSupportFragment.setTypesFilter(List)
kullanın.
Bir bölgenin yer ayrıntılarını alma
Android için Yerler SDK'sındaki Yer Ayrıntıları hizmeti, bir bölgeyle ilgili veriler döndürerek oldukça yararlı olabilir. Örneğin, şunları yapabilirsiniz:
- Yer adlarına göre sınır yer kimlikleri arayın.
- Bir sınıra yakınlaştırmak için görüntü alanını alın.
- Sınırın özellik türünü alın (örneğin,
locality
). - Amerika Birleşik Devletleri bölgesinde "Yer Adı, Eyalet, Ülke" olarak çözülen biçimlendirilmiş adresi alın (örneğin, "Ottumwa, IA, ABD").
- Fotoğraflar gibi diğer yararlı verileri alın.
Coğrafi Kodlama API'yi kullanma
Coğrafi Kodlama API'si, bir adresi enlem ve boylam koordinatlarına ve yer kimliğine dönüştürmenize veya enlem ve boylam koordinatlarını ya da yer kimliğini bir adrese dönüştürmenize olanak tanır. Aşağıdaki kullanım alanları, sınırlar için veri odaklı stilizasyonla iyi bir şekilde birleştirilebilir:
- Bir bölgenin görüntü alanını almak için Coğrafi Kodlama'yı kullanın.
- 1-4 idari bölgelerinin, yerleşim yerinin veya posta kodunun yer kimliklerini almak için coğrafi kodlama çağrınıza bileşen filtreleme uygulayın.
- Enlem ve boylam koordinatlarına göre yer kimliklerini bulmak veya belirli bir konumdaki tüm bileşenlerin yer kimliklerini döndürmek için ters coğrafi kodlamayı kullanın.
Aşağıdaki örnekte, Coğrafi Kodlama API'sine istek göndermek için bir adres (URL'den kaçan) kullanılmaktadır:
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY
Yer kimliklerini bulmak için ters coğrafi kodlama özelliğini kullanabilirsiniz. Aşağıdaki coğrafi kodlama hizmeti işlevi örneği, belirtilen enlem ve boylam koordinatlarındaki tüm adres bileşenlerinin yer kimliklerini döndürür:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
Belirtilen konumda aşağıdaki türlerden en az birinin adres bileşenini almak için bileşen filtrelemeyle ters coğrafi kodlamayı kullanın:
administrativeArea
country
locality
postalCode
Aşağıdaki örnek işlevde, coğrafi kodlama hizmetinin kullanılması ve belirtilen konumdaki tüm adres bileşenlerini yalnızca locality
türü için almak üzere ters coğrafi kodlama ile bileşen kısıtlamaları eklenmesi gösterilmektedir:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY