Bölge aramak ve yerler hakkında daha fazla bilgi edinmek için Android için Haritalar SDK'sı ile Places hizmetini ve Geocoding API'yi kullanabilirsiniz. Places 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 veri odaklı stil ile yeniden kullanabilirsiniz.
Android için Haritalar SDK'sına Yerler hizmetini ve Coğrafi Kodlama'yı aşağıdaki yöntemlerle ekleyin:
- Android için Yerler SDK'sı, yerlerle ilgili bilgi döndüren yöntemleri içeren bir Android kitaplığıdır.
- Places API, HTTP isteklerini kullanarak yerler hakkında bilgi döndürür.
- Coğrafi kodlayıcı sınıfı, kullanıcı girişinden dinamik olarak coğrafi kodlama ve tersine coğrafi kodlama yapabilir.
- Geocoding API, bilinen statik adresleri coğrafi kodlamanıza olanak tanır.
Yerler hizmetini 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 Text Search (Yeni) REST API'sini kullanabilirsiniz. Yer kimlikleri 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)
simgesini 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 kimliklerini 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'sini kullanma
Coğrafi Kodlama API, 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 veriye dayalı stil ile iyi bir uyum sağlar:
- 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 tersine 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
Bir sonraki örnek işlevde, coğrafi kodlama hizmetinin kullanılması, yalnızca locality
türü için belirtilen konumdaki tüm adres bileşenlerini 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