Bir önceki yazımızda Bing Maps SOAP servislerini incelemeye başlamıştık. Bu yazımızda da yer bulucu servis olan Geococe servisini inceleyeceğiz.
Bu servis sayesinde verilen bir yerin coğrafi konumunu elde etmek mümkündür. Coğrafi konumu elimizde olan bir yerin de adres bilgisini elde etek mümkündür. Servisin sağladığı iki metod bu işlemleri yerine getirir.
Şimdi bir adrese ait coğrafi konum bilgisini bir örnek yardımıyla elde etmeye çalışalım.
Öncelikle elimizde bir Bing Maps Developmet Account Key olması gerekir. Bu key https://www.bingmapsportal.com ‘dan elde edilebilir. Bu key kodlama sırasında bize gerekecektir.
Servisin kullanılabilmesi için projemize eklenmesi gerekmektedir. Bu işlem için projemize sağ tıklayıp Add Service Reference diyoruz. Karşımıza çıkan pencereye aşağıdaki servis linkini yapıştırıyoruz.
http://dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc?wsdl
Servisimiz Yukarıda bahsettiğimiz gibi iki adet metod içermektedir.
Bu örnekte Geocode metodunu kullanacağız.
public Location CalculateGeocodeOf(string address) { GeocodeRequest geocodeRequest = new GeocodeRequest(); geocodeRequest.Credentials = getCredentials(); geocodeRequest.Query = address; geocodeRequest.Options = getGeocodeOptions(); GeocodeServiceClient geocodeService = new GeocodeServiceClient(); GeocodeResponse geocodeResponse = geocodeService.Geocode(geocodeRequest); if (geocodeResponse.Results.Length > 0) { var location = new Location(); location.Latitude = geocodeResponse.Results[0].Locations[0].Latitude; location.Longitude = geocodeResponse.Results[0].Locations[0].Longitude; return location; } return null; } private GeocodeOptions getGeocodeOptions() { GeocodeOptions geocodeOptions = new GeocodeOptions(); geocodeOptions.Filters = getConfidenceFilter(); return geocodeOptions; } private ConfidenceFilter[] getConfidenceFilter() { ConfidenceFilter[] filters = new ConfidenceFilter[1]; filters[0] = new ConfidenceFilter(); filters[0].MinimumConfidence = Confidence.High; return filters; } private Credentials getCredentials() { Credentials credential = new Credentials(); credential.ApplicationId = AppConfig.BingKey; return credential; }
Hazırladığımız CalculateGeocodeOf metodu yardımıyla bir adresin coğrafi konumunu elde edebiliriz.
Bunu bing map üzerinden de doğrulayabiliriz.