Coğrafi kodlama terimi genellikle okunabilir bir adresin harita üzerindeki bir konuma çevrilmesini ifade eder. Bunun tam tersi olan, haritadaki bir konumu okunabilir bir adrese çevirme işlemine tersine coğrafi kodlama adı verilir.
Tersine coğrafi kodlama istekleri
Gerekli parametreler
latlng
: En yakın ve okunabilir adresi istediğiniz konumun enlem ve boylam koordinatları.key
: Uygulamanızın API anahtarı. Bu anahtar, kota yönetimi amacıyla uygulamanızı tanımlar. Nasıl anahtar alacağınızı öğrenin.
İsteğe bağlı parametreler
Ters coğrafi kodlama isteğine ekleyebileceğiniz isteğe bağlı parametreler şunlardır:
language
: Sonuçların döndürüleceği dil.- Desteklenen dillerin listesini inceleyin. Google, desteklenen dilleri sık sık güncellediği için bu liste kapsamlı olmayabilir.
language
sağlanmazsa coğrafi kodlayıcı,Accept-Language
üstbilgisinde belirtilen tercih edilen dili veya isteğin gönderildiği alan adının yerel dilini kullanmaya çalışır.- Coğrafi kodlayıcı, hem kullanıcı hem de yerel halk tarafından okunabilir bir açık adres sağlamak için elinden geleni yapar. Bu hedefi gerçekleştirmek için tercih edilen dili dikkate alarak gerekirse sokak adreslerini yerel dilde ve kullanıcının okuyabileceği bir alfabeye çevrilmiş olarak döndürür. Diğer tüm adresler tercih edilen dilde döndürülür. Adres bileşenlerinin tümü aynı dilde döndürülür. Bu dil, ilk bileşenden seçilir.
- Bir ad tercih edilen dilde kullanılamıyorsa coğrafi kodlayıcı en yakın eşleşmeyi kullanır.
region
: ccTLD ("üst düzey alan") olarak belirtilen, iki karakterlik bir değer olan bölge kodu. Parametre, geçerli yasaya göre sonuçları da etkileyebilir.result_type
: Bir veya daha fazla adres türünün boru işaretiyle (|
) ayrılmış filtresi. Parametre birden fazla adres türü içeriyorsa API, türlerden herhangi biriyle eşleşen tüm adresleri döndürür. İşleme hakkında not:result_type
parametresi, aramayı belirtilen adres türleriyle sınırlandırmaz. Bunun yerine,result_type
, arama sonrası filtre görevi görür: API, belirtilenlatlng
için tüm sonuçları getirir, ardından belirtilen adres türleriyle eşleşmeyen sonuçları siler. Aşağıdaki değerler desteklenir:Adres türleri ve adres bileşeni türleri
Yanıtın
GeocodeResult
gövdesindekitypes
dizisi, adres türünü belirtir. Adres türlerine örnek olarak açık adres, ülke veya siyasi birim verilebilir.GeocodeResult
gövdesininAddressComponents
alanındakitypes
dizisi, adresin her bir bölümünün türünü belirtir. Örneğin, bina numarası veya ülke.Adresler birden fazla türde olabilir. Türler "etiket" olarak kabul edilebilir. Örneğin, birçok şehir
political
velocality
türleriyle etiketlenir.Aşağıdaki türler desteklenir ve hem adres türü hem de adres bileşeni türü dizilerinde döndürülür:
Adres Türü Açıklama street_address
Açık adres. route
Adlandırılmış bir rota (ör. "US 101"). intersection
Genellikle iki ana yolun kesiştiği büyük bir kavşak. political
Siyasi bir tüzel kişi. Genellikle bu tür, bir idari birimin poligonunu gösterir. country
Ulusal siyasi varlık ve genellikle Coğrafi Kodlayıcı tarafından döndürülen en yüksek sıralı türdür. administrative_area_level_1
Ülke düzeyinin altındaki birinci dereceden sivil alan. ABD'de bu idari düzeyler eyaletlerdir. Bazı ülkelerde bu idari düzeyler bulunmaz. Çoğu durumda, administrative_area_level_1
kısa adları ISO 3166-2 alt bölümleri ve yaygın olarak kullanılan diğer listelerle yakından eşleşir. Ancak coğrafi kodlama sonuçlarımız çeşitli sinyallere ve konum verilerine dayandığından bu durum garanti edilmez.administrative_area_level_2
Ülke düzeyinin altındaki ikinci düzey sivil idari birim. Amerika Birleşik Devletleri'nde bu idari düzeyler ilçelerdir. Bazı ülkelerde bu idari düzeyler bulunmaz. administrative_area_level_3
Ülke düzeyinin altındaki üçüncü düzey sivil idari birim. Bu tür, küçük bir idari bölgeyi gösterir. Bazı ülkelerde bu idari düzeyler bulunmaz. administrative_area_level_4
Ülke düzeyinin altında dördüncü düzey bir sivil varlık. Bu tür, küçük bir idari bölgeyi gösterir. Bazı ülkelerde bu idari düzeyler bulunmaz. administrative_area_level_5
Ülke düzeyinin altında beşinci dereceden bir idari birim. Bu tür, küçük bir idari bölgeyi gösterir. Bazı ülkelerde bu idari düzeyler bulunmaz. administrative_area_level_6
Ülke düzeyinin altında altıncı dereceden bir idari birim. Bu tür, küçük bir idari bölgeyi gösterir. Bazı ülkelerde bu idari düzeyler bulunmaz. administrative_area_level_7
Ülke düzeyinin altındaki yedinci dereceden bir sivil varlık. Bu tür, küçük bir idari bölgeyi gösterir. Bazı ülkelerde bu idari düzeyler bulunmaz. colloquial_area
Tüzel kişi için yaygın olarak kullanılan alternatif bir ad. locality
Tüzel kişiliğe sahip bir şehir veya kasaba siyasi tüzel kişiliği. sublocality
Bir yerleşim biriminin altındaki birinci dereceden sivil alan. Bazı konumlar için sublocality_level_1
ilesublocality_level_5
arasındaki ek türlerden biri kullanılabilir. Her alt yerleşim birimi düzeyi, sivil bir varlıktır. Daha büyük sayılar, daha küçük bir coğrafi alanı gösterir.neighborhood
Adlandırılmış bir mahalle. premise
Adlandırılmış bir konum, genellikle ortak bir ada sahip bir bina veya binalar topluluğu. subpremise
Tesis düzeyinin altında, adreslenebilir bir varlık (ör. apartman, birim veya süit). plus_code
Enlem ve boylamdan elde edilen, kodlanmış bir konum referansı. Plus code'lar, sokak adreslerinin olmadığı yerlerde (binaların numaralandırılmadığı veya sokakların adlandırılmadığı yerler) sokak adreslerinin yerine kullanılabilir. Ayrıntılar için https://plus.codes adresini ziyaret edin. postal_code
Ülke içinde posta göndermek için kullanılan posta kodu. natural_feature
Belirgin bir doğal alan. airport
Havalimanı park
Adlandırılmış bir park. point_of_interest
Adlandırılmış bir önemli yer. Bu "ÖY"ler genellikle "Empire State Binası" veya "Eyfel Kulesi" gibi başka bir kategoriye kolayca uymayan, öne çıkan yerel varlıklardır. Boş bir tür listesi, belirli adres bileşeni için bilinen bir tür olmadığını gösterir (örneğin, Fransa'da Lieu-dit).
location_type
: Dikey çubukla (|
) ayrılmış bir veya daha fazla konum türünün filtresi. Parametre birden fazla konum türü içeriyorsa API, türlerden herhangi biriyle eşleşen tüm adresleri döndürür. İşleme hakkında not:location_type
parametresi, aramayı belirtilen konum türleriyle sınırlandırmaz. Bunun yerine,location_type
, arama sonrası filtre görevi görür: API, belirtilenlatlng
için tüm sonuçları getirir, ardından belirtilen konum türleriyle eşleşmeyen sonuçları atar. Aşağıdaki değerler desteklenir:"ROOFTOP"
yalnızca Google'ın sokak adresi hassasiyetine kadar doğru konum bilgisine sahip olduğu adresleri döndürür."RANGE_INTERPOLATED"
yalnızca iki kesin nokta (ör. kavşaklar) arasında enterpolasyonla elde edilen, yaklaşık değerleri (genellikle bir yol üzerinde) yansıtan adresleri döndürür. İnterpolasyonlu bir aralık genellikle çatı üstü coğrafi kodların bir sokak adresi için kullanılamadığını gösterir."GEOMETRIC_CENTER"
yalnızca bir konumun geometrik merkezlerini (ör. çoklu çizgi (sokak) veya poligon (bölge)) döndürür."APPROXIMATE"
yalnızca yaklaşık olarak nitelendirilen adresleri döndürür.
extra_computations
: Yanıtta aşağıdaki ek özellikleri belirtmek için bu parametreyi kullanın:ADDRESS_DESCRIPTORS
: Daha fazla bilgi için adres tanımlayıcıları bölümüne bakın.BUILDING_AND_ENTRANCES
— Daha fazla bilgi için girişler ve bina ana hatları bölümüne bakın.
extra_computations
parametresini ekleyin. Örneğin:extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES
Hem result_type
hem de location_type
filtreleri mevcutsa API yalnızca hem result_type
hem de location_type
değerleriyle eşleşen sonuçları döndürür. Filtre değerlerinden hiçbiri kabul edilebilir değilse API ZERO_RESULTS
değerini döndürür.
Tersine coğrafi kodlama örneği
Aşağıdaki sorgu, Brooklyn'deki bir konumun enlem/boylam değerini içeriyor:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
Yukarıdaki sorgu şu sonucu döndürür:
{
"results" : [
{
"address_components" : [
{
"long_name" : "277",
"short_name" : "277",
"types" : [ "street_number" ]
},
{
"long_name" : "Bedford Avenue",
"short_name" : "Bedford Ave",
"types" : [ "route" ]
},
{
"long_name" : "Williamsburg",
"short_name" : "Williamsburg",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Brooklyn",
"short_name" : "Brooklyn",
"types" : [ "sublocality", "political" ]
},
{
"long_name" : "Kings",
"short_name" : "Kings",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "11211",
"short_name" : "11211",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
"geometry" : {
"location" : {
"lat" : 40.714232,
"lng" : -73.9612889
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 40.7155809802915,
"lng" : -73.9599399197085
},
"southwest" : {
"lat" : 40.7128830197085,
"lng" : -73.96263788029151
}
}
},
"place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
"types" : [ "street_address" ]
},
... Additional <code>results[]</code> ...
Ters coğrafi kodlayıcının birden fazla sonuç döndürdüğünü unutmayın. "formatted_address"
sonuçları yalnızca posta adresleri değil, bir konuma coğrafi olarak ad vermenin herhangi bir yoludur. Örneğin, Chicago şehrindeki bir nokta coğrafi olarak kodlandığında, coğrafi olarak kodlanmış nokta sokak adresi, şehir (Chicago), eyalet (Illinois) veya ülke (ABD) olarak belirtilebilir. Bunların tümü, coğrafi kodlayıcıya "adres" olarak gönderilir. Ters coğrafi kod çözücü, bu türlerden herhangi birini geçerli sonuç olarak döndürür.
Ters coğrafi kodlayıcı, siyasi varlıkları (ülkeler, iller, şehirler ve mahalleler), açık adresleri ve posta kodlarını eşleştirir.
Önceki sorgu tarafından döndürülen formatted_address
değerlerinin tam listesi aşağıda gösterilmektedir.
{
"plus_code" : {
"compound_code" : "P27Q+MCM New York, NY, USA",
"global_code" : "87G8P27Q+MCM"
},
"results" : [
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "street_address" ]
},
{
"formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "premise" ]
},
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "establishment", "point_of_interest" ]
},
{
"formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "route" ]
},
{
"formatted_address" : "P27Q+MC New York, NY, USA",
...
"types" : [ "plus_code" ]
},
{
"formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Brooklyn, NY 11211, USA",
...
"types" : [ "postal_code" ]
},
{
"formatted_address" : "Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Kings County, Brooklyn, NY, USA",
...
"types" : [ "administrative_area_level_2", "political" ]
},
{
"formatted_address" : "Brooklyn, NY, USA",
...
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"formatted_address" : "New York, NY, USA",
...
"types" : [ "locality", "political" ]
},
{
"formatted_address" : "New York, USA",
...
"types" : [ "administrative_area_level_1", "political" ]
},
{
"formatted_address" : "United States",
...
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}
Bu API, en ayrıntılı sokak adresinden daha az ayrıntılı siyasi birimlere (ör. mahalleler, şehirler, ilçeler ve eyaletler) kadar farklı türde adresler döndürür. Daha kesin adres genellikle en belirgin sonuçtur (bu örnekte olduğu gibi). Belirli bir adres türüyle eşleşmek istiyorsanız sonuçları türe göre kısıtlama ile ilgili aşağıdaki bölüme bakın. Bu nedenle, sonuçların birbirlerine göre konumu değişebilir.
Tersine coğrafi kodlama, türe göre filtrelenir.
Aşağıdaki örnek, döndürülen adresleri yalnızca ROOFTOP
konum türüne ve street_address
adres türüne sahip olanları içerecek şekilde filtreler.
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY
Not: Bu filtreler yalnızca ters coğrafi kodlama için geçerlidir.
Tersine coğrafi kodlama yanıtları
Tersine coğrafi kodlama yanıtının biçimi, coğrafi kodlama yanıtıyla aynıdır. Geocoding yanıtları bölümünü inceleyin. Ters coğrafi kodlama yanıtında olası durum kodları aşağıda verilmiştir.
Tersine coğrafi kodlama durum kodları
Coğrafi kodlama yanıt nesnesindeki "status"
alanı, isteğin durumunu içerir ve ters coğrafi kodlamanın neden çalışmadığını bulmanıza yardımcı olacak hata ayıklama bilgilerini içerebilir. "status"
alanı aşağıdaki değerleri içerebilir:
"OK"
, hata oluşmadığını ve en az bir adresin döndürüldüğünü gösterir."ZERO_RESULTS"
, ters coğrafi kodlamanın başarılı olduğunu ancak sonuç döndürmediğini gösterir. Bu durum, coğrafi kodlayıcıya uzak bir konumdalatlng
iletilirse ortaya çıkabilir."OVER_QUERY_LIMIT"
, kotanızı aştığınızı gösterir."REQUEST_DENIED"
, isteğin reddedildiğini gösterir. İstek,result_type
veyalocation_type
parametresini içeriyor ancak API anahtarı içermiyor olabilir."INVALID_REQUEST"
genellikle aşağıdakilerden birini gösterir:- Sorgu (
address
,components
veyalatlng
) eksik. - Geçersiz bir
result_type
veyalocation_type
değeri verildi.
- Sorgu (
"UNKNOWN_ERROR"
, sunucu hatası nedeniyle isteğin işlenemediğini gösterir. Tekrar denerseniz istek başarılı olabilir.
Plus Code'ları tersine coğrafi kodlama
Coğrafi kodlama yanıtındaki plus_code
alanı, sorgulanan enlem ve boylamı en iyi şekilde yaklaştıran bir artı kodu içerir.
Ayrıca, JSON sonuç dizisi çoğu durumda bir artı kodu içeren bir adres ve plus_code
türüyle birlikte tam bir Coğrafi Kodlama sonucu içerir. Çözülen artı kodu ile istek noktası arasındaki mesafenin 10 metrenin altında olduğu garanti edilir.