Google Maps Javascript API V3 Services

11 Temmuz 2010 Pazar 22:22 Gönderen Merve Yüzbaşıoğlu
GEOCODING

google.maps.Geocoder

Geocoding, haritadaki pozisyonda yada markerların yerlerinde kullanabileceğin coğrafi koordinatlar("enlem 37.423021 ve boylam -122.083739" gibi) içindeki adres dönüştürme sürecidir.( "1600 Amphitheatre Parkway, Mountain View, CA" gibi).

Google Maps API,kullanıcının girdiği dinamik geocoding adresleri için bir geocoder sınıfı sağlar.Bunun yerine static geocoding isterseniz,adresleri bilin ve geocoding web service dökümanına bakın.

GEOCODING İSTEKLERİ

Google Maps API,harici bir sunucuya çağrı yapması gerekene kadar,geocoding servisine erişim asenkrondur.Bu nedenle,isteklerin tamamlanması üzerinde çalışmak için geri çağrı metoduna geçmek gerekir.Bu geri çağrı metodu sonuçları işler.Bu geocoder'ın birden fazla sonuç döndürdüğünü unutmayın!!!

Google.maps.Geocoder nesnesi yoluyla kodunuz içinden Google Maps API geocoding servisine erişebilirsiniz. Geocoder.geocode () metodu,yanıt aldıktan sonra geri çağırma metodunu çalıştırmak için ve girdi koşullarını tam anlamıyla içeren bir GeocodeRequest nesnesine geçen bir geocoding servis isteğini başlatır.

GeocodeRequest tam anlamıyla aşağıdaki alanları içerir;

Bu alanlar aşağıda açıklanmıştır;

address (gerekli) — geocode için istediğiniz adres.*
latLng (gerekli*) — İnsanların okuyabileceği adreslere en yakın hale getirebilmek için kullanılır.
bounds (isteğe bağlı) — LatLngBounds ,geocode sonuçlarının daha belirgin bir şekilde olmasını sağlar.
language (isteğe bağlı) — geri döndürülen sonucun dili.
region (isteğe bağlı) — IANA language region subtag gibi özel bölge kodları.Çoğu durumda,bu etiketler bilinen ccTLD iki-karakterli değerler

*NOT:Arama için ya address'e yada latLng ye geçebilirsiniz.(Eğer latLng'ye geçilirse,geocoder,ters geocode olarak bilinen şekilde gerçekleşir.Daha fazla bilgi için Reverse Geocoding 'e bakın)
bounds ve region, geocoderdan gelen sonucu tam olarak kısıtlamayacak sadece etkileyecektir.

GEOCODING YANITLARI

Geocoding servisi,geocoding sonuçlarının alımı üzerinden çalışmak için bir geri çağrım metodu gerektirir.Bu geri çağrım, sonuçları ve o anki durumu tutmak için iki parametre vermelidir. Geocoder birden fazla sonuç geri döndürdüğünden,GeocoderResults nesnesi bir dizidir.

Geocoding Sonuçları

GeocoderResults nesnesi tek bir geocoding sonucu gibi temsil edilir ve aşağıdaki gibidir.

Bu alanların açıklaması şöyledir;

types[] ,geri dönen sonucun tipini gösteren bir dizidir.Bu dizi, geri dönen sonuçta bir veya daha fazla belirlenmiş taglar kümesi içerir.Örneğin; "Chicago" nun coğrafik kodu, "Chicago" nun bir şehir olduğunu gösteren "locality"(mekan,yer) ve üstelik onun siyasi varlığını gösteren bir "political" geri döndürür.
formatted_address, bu yerin okunabilir adresini içeren bir string'dir.Genellikle bu adresler şehirden şehire değişen "posta adres"lerine eşdeğerdir.(Büyük Britanya gibi bazı ülkelerin, gerçek posta adreslerini lisans kısıtlamaları nedeniyle dağıtım izni vermediğini unutmayın).Bu adres genellikle bir yada daha fazla adres bileşenlerinden oluşur.Örneğin "111 8th Avenue, New York, NY" adresi ;"111 8th Avenue"(sokak adresi),"New York"(şehir) ve"NY" (ABD devlet) için ayrı bir adres bileşenleri içerir.Bu adres bileşenleri aşağıda belirtilmiştir(adres bileşenleri tipleri hakkında daha fazla bilgi için "types" a bakın)

address_component[],yukarıda açıklandığı gibi ayrı adres bileşenlerini içeren bir dizidir.
geometry,aşağıdaki bilgileri içerir.
location,coğrafi kodlanmış enlem, boylam değerini içerir.Bu yeri string formatında değil latLng nesnesi gibi geri döndürdüğünü unutmayın.
location_type,belirtilen yer hakkında ek veri depolar.Aşağıdaki değerler şu anda desteklenmektedir:
google.maps.GeocoderLocationType.ROOFTOP,geri dönen sonucun kesin bir coğrafi kod yansıttığını gösterir.
google.maps.GeocoderLocationType.RANGE_INTERPOLATED, geri dönen sonucun iki hassas nokta arasındaki yaklaşık interpolasyonunu yansıttığını gösterir.Çatı coğrafi kodları sokak adresleri için kullanılmadığından genellikle aralıklı sonuçlar geri döndürür.
google.maps.GeocoderLocationType.GEOMETRIC_CENTER, geri dönen sonucun polygon yada polyline gibi, bir sonucun geometrik merkezi olduğunu gösterir.
google.maps.GeocoderLocationType.APPROXIMATE, geri döndürülen sonucu yaklaşık olarak gösterir
viewport,geri döndürülen sonuç için tavsiye edilen viewport'u depolar.
bounds (isteğe bağlı olarak geridöner),geri dönen sonucu tamamen içeren LatLngBounds u tutar.Bu bounds'ların tavsiye edilen viewportla eşleşmeyebileceğini unutmayın.(Örneğin; San Fransisco,teknik olarak şehrin bir parçası olan Farallon adalarını içerir fakat viewportta geri dönmemiş olabilir.)


Adres Bileşen Türler

Types[], geri dönen sonuç içinde adres tipini gösteren dizidir.Bu tür ayrıca address_components[] diziler içinde belirli bir adres bileşeninin tipini göstermek için geri döndürülerbilir.Geocoder içindeki adresler çoklu tiplere sahip olabilir;tipler,"tags" olarak kabul edilmiş olabilir.Örneğin birçok şehir, "political" ve "locality" tipi ile taglenmiştir.

Aşağıdaki tipler HTTP geocoder tarafından geri döndürülür ve desteklenir:

street_address,kesin bir sokak adresi belirtir.
route, isimlendirilmiş bir route içerir.("US 101" gibi)
intersection,önemli bir kesişim gösterir,genellikle de iki önemli yolun..
political,siyasi bir özelliği gösterir.Genellikle bu tip bazı sivil idarelerin bir polygonunu gösterir.
country,ulusal siyasi varlığı gösterir ve geocoder tarafından geri döndürülen en üstün düzendir.
administrative_area_level_1,aşağıda ülke düzeyinde birinci dereceden sivil bir varlık gösterir.Amerika Birleşik Devleti içerisinde bu idari seviyeler eyaletlerdir.Bütün ülkeler bu idari düzeyde sergilenmemektedir.
administrative_area_level_2, aşağıda ülke düzeyinde ikinci dereceden sivil bir varlık gösterir.Amerika Birleşik Devleti içerisinde bu idari seviyeler ilçelerdir.Bütün ülkeler bu idari düzeyde sergilenmemektedir.
administrative_area_level_3,aşağıda ülke düzeyinde üçüncü dereceden sivil bir varlık gösterir.Bu tür küçük bir sivil bölünme gösterir.Bütün ülkeler bu idari düzeyde sergilenmemektedir.
colloquial_area, varlık için yaygın olarak kullanılan alternatif bir isim gösterir.
locality,bir anonim şehir yada kasabanın siyasi varlığını gösterir.
sublocality,locality(yerleşimin) altında birinci dereceden sivil bir varlık gösterir.
neighborhood, isimlendirilmiş bir mahalle gösterir.
premise, isimlendirilmiş yerleri gösterir,genellikle bir bina yada ortak olarak isimlendirilmiş binalar topluluğudur
subpremise,location altında birinci düzeyde bir varlık gösterir,genellikle ortak adlandırılmış binalar topluluğunun içindeki tekil bir binadır.
postal_code ,ülkenin içinden posta adreslerinde kullanılan posta kodunu gösterir.
natural_feature ,önemli doğal bir özelliği gösterir.
airport,bir havaalanını gösterir.
park, isimlendirilmiş bir parkı gösterir.

Ayrıca,adres bileşenleri aşağıdaki tiplerde de görülebilir;

post_box ,belirli bir posta kutusunu gösterir.
street_number ,kesin olan sokak numarasını gösterir.
floor, bir bina adresinin zeminini gösterir.
room, bir bina adresinin odasını gösterir.

Durum Kodları

Status(durum) kodları aşağıdaki değerlerden birini geri döndürebilir;

google.maps.GeocoderStatus.OK ,geocode'un(coğrafi kod) başarılı olduğunu gösterir.
google.maps.GeocoderStatus.ZERO_RESULTS geocode'un başarılı olduğunu fakat sonuç geri döndürmediğini gösterir.Eğerki geocode var olmayan bir adresi yada uzak bir yerde latLng gösteriyorsa bu durum oluşabilir.
google.maps.GeocoderStatus.OVER_QUERY_LIMIT ,kotanızın bittiğini gösterir.
google.maps.GeocoderStatus.REQUEST_DENIED ,bazı sebeplerle isteğinizin reddedildiğini gösterir.
google.maps.GeocoderStatus.INVALID_REQUEST ,genellikle sorgunun(adres ve latLng) kaybolduğunu gösterir.

Bu örnekte,enlem ve boylamın geri döndürüldüğü bir marker'ın yerini ve adresini coğragi kodladık.işleyicinin anonim bir fonsiyon gibi aktardığını unutmayın!!


Örneği görüntüle..

TERS GEOCODING(Adres Arama)

Geocoding terimi genel olarak,harita üzerindeki bir yerin okunabilir bir adrese çevrilmesi anlamına gelir.Tersini alma işlemi,okunabilir bir adrese haritada yer tahsis etme,geocoding'in tersi olarak bilinir.

Geocoder,direkt olarak geocoding'in tersini destekler.Metinsel bir adresin tedarik edilmesi yerine, latLng parametresinde virgülle ayrılmış enlem/boylam çifti olarak tedarik edilir.

Aşağıdaki örnek bir enlem boylam değerini coğrafi kodlar ve biçimlendirilmiş bir adres ile bilgi penceresine verdiği o yeri haritaya odaklar.(merkezler)İlkinden daha az belirli olan ikinci sonucu geri döndürürüz.


Önceki örnekte ikinci sonucu gösterdiğimizi unutmayın!!!!(results[1] tarafından seçilen).geocoder'ın tersi genellikle birden daha fazla sonuç geri döndürür.geocodding
"addresses" sadece porsta adresleri değildir,fakat bir yeri coğrafi olarak isimlendirmenin başka yolu yoktur.Örneğin; chicago şehrindeki bir nokta coğrafi kodlandığında, coğrafi kodlanmış nokta bir sokak adresi,şehir adresi(chicago), onun eyaleti(Illinois) yada bir ülke(Amerika Birleşik Devletleri) gibi işaretlenmiş olabilir.Tamamıda geocoder için "addresses"'dır.Ters geocoder bu sonuçların tamamını geri döndürür.

Ters geocoder siyasi varlıklar, sokak adresleri ve posta kodları ile eşleşir.

Bir önceki sorguda geri döndürülen adreslerin tamamının listesi aşağıda gösterilmiştir;


Adresler en az eşleşme için en iyi sırada geri döndürülmüştür.Bu durumda olduğu için daha kesin adres, en önemli sonuçtur.En belirli sokak adreslerinden mahalleler,şehirler,ilçeler,eyaletler vb. kadar az belirli siyasi varlıklara kadar farklı adres tipi geri döndürdüğümüzü unutmayın..Eğer daha genel bir adres eşleşmesi istiyorsak, results[].type alanlarını incelemek isteyebilirsiniz.

Not:Ters coğrafi kodlama kesin bir bilim değildir.Geocoder,belirli bir tolerans ile en yakın adreslenebilir yeri bulmaya kalkışacaktır.

Örneği görüntüle..

VIEWPORT KUTUPLANMASI

Ayrıca belirli bir viewport içerisindeki tercih edilen sonucu Geocoding servisine talimat verebilirsiniz.(sınırlayıcı bir kutu gibi ifade edilmiş)Bu viewportun sınırlarını tanımlamak için GeocodeRequest nesnesinin bounds parametresiyle ayarlamalar yapabilirsiniz.

Örneğin,"Winnetka" için olan bir geocode genellikle Chicago'nun kenar mahallesi olarak geri döndürülür.


Bununla birlikte,bu yerde "Winnetka"adındaki mahalleyi geri döndüren geocode'daki Los Angeles'ın San Fernando vadisi için tanımlanan sınırlayıcı kutuyu bounds parametresi belirler:


BÖLGE KODU KUTUPLANMASI

Ayrıca belirli bir bölgeyi kullanan region parametresine sonuçları geri döndürebilmek için Geocoding servisi ayarlayabilirsiniz.Bu parametre,IANA language region subtag gibi belirli bir bölge kodu alır.Çoğu durumda,bunlar örneğin "co.uk" daki "uk" gibi bilinen ccTLD(üst-düzey alan) iki-karakterli değerler için doğrudan haritaya etiketler.Bazı durumlarda,bölge etiketi
bazı ccTLD değerlerinden farklı ISO-3166-1 kodlarını destekler.(örneğin;"Great Britain" için "GB")
Geocoding isteklerine, ana Google Maps uygulamalarındaki önerilen coğrafi kod her alan için gönderilmiş olabilir.
Örneğin;"Toldeo" için coğrafi kod, Geocoding Hizmet için varsayılan etki alanının ABD'ye ayarlandığı gibi bir sonuç geri döndürür:


'es'(ispanya) olarak ayarlanmış bölge alanı ile "Toldeo" için geocode İspanyol şehrini geri döndürecektir.



Çevirmen Notu:Bu yazının devamı en kısa sürede çevirilip yayınlanacaktır.Services kısımlarından önceki bölüm için "http://dogankadriye89.blogspot.com/" ve "http://blog.alihalukseven.com/" bloglarına göz atabilirsiniz.. Çeviri hatalarım olmuştur bunlar için herkesten özür diliyorum ve orjinal metin'e ulaşmak için: "http://code.google.com/intl/tr-TR/apis/maps/documentation/javascript/services.html" adresini kullanabilirsiniz..

1 Response to "Google Maps Javascript API V3 Services"

  1. Ali Haluk Seven Says:

    Merve in 'rabit hole' =)

Yorum Gönder