Thursday, November 10, 2016

Google Maps'den Harita Imaji

Diyelim ki mobil uygulama gelistiriyoruz, ve nerede oldugumuza bagli olarak bir harita gostermemiz gerekiyor.. Haritalama Google Maps arayuz baglantisi uzerinden ihtiyac oldugu anda alinabilir, fakat telefonun baglantisiz olabilecegi durumlara hazir olmak lazim. Google Maps'in statik harita imaji uretmek icin API'si var,

from io import BytesIO
import Image, urllib

url = "http://maps.googleapis.com/maps/api/staticmap?center=41.0870,29.0373&size=800x800&zoom=14"
buffer = BytesIO(urllib.urlopen(url).read())
image = Image.open(buffer)
image.save("map.png")

41.0870,29.0373 parametreleri enlem ve boylam, center ile bu kordinatlari harita merkezine al diyoruz, ve staticmap URL'ine giderek bir imaj uretmek istedigimizi soyluyoruz. Uretilen harita imaj dosyasi yerel diskte kaydedilebilir.

Sonuc


O zaman belli bir zoom seviyesini kullanarak tum bir sehir icin harita parcalari uretip telefonda tutabiliriz. Mesela Istanbul icin sol ust kose 41.123039, 28.930376 sag alt ust kose 40.959904, 29.129503'de olan bir dikdortgeni parcalara boleriz, her parca icin ustteki cagriyi yapariz. Cok fazla imaj gerektirmez herhalde, zaten imajlar format degisimi vs. sonrasinda da iyice kuculebilir (80 kb civari mesela). 10 MB icinde tum bir sehri tutmak zor olmasa gerek.

Zoom seviye 17 icin 88 pixel 50 metreye, seviye 15 icin 200 metreye tekabul ediyor.

No comments: