Akademisyenler öncülüğünde matematik/fizik/bilgisayar bilimleri soru cevap platformu
0 beğenilme 0 beğenilmeme
3.7k kez görüntülendi
Enlem, boylam bilgilerinden adres bulma, harita üzerinde görselleştirme gibi temel işleri Python'da nasıl yapabilirim?
Veri Bilimi kategorisinde (1.8k puan) tarafından 
tarafından yeniden etikenlendirildi | 3.7k kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme
  • Coğrafi konum işleme için çeşitli servisler var, kimisi paralı kimisi değil. En bilinenleri google maps, yandex maps ve here maps. Benim en rahat kullandığım here maps oldu, bunun üzerinden anlatacağım ama diğerleri de benzer şekilde çalışıyor.
  • Öncelikle linki takip ederek ücretsiz bir APP ID ve API Key almanız gerekiyor here maps apisini kullanmak için.
  • Coğrafi konum api servislerinin hepsini doğrudan da kullanabilirsiniz ama python'da en kolayı geopy kütüphanesini kullanmak, onu da yükleyin.
  • Görselleştirme için de farklı seçenekler var, folium ve mapbox en sık kullanılanlarından. Plotly ile uyumundan dolayı mapbox'ı tercih ediyorum.
  • Mapbox için de bir kullanıcı tokenı almanız gerekiyor, linki takip ederek bunu ücretsiz alabilirsiniz.

Bunları hazır ettikten sonrası oldukça kolay.

from geopy.geocoders import Here
import plotly.graph_objs as go

# "###" ile işaretli yerlere size ait app_id, api_key ve token değerleri gelecek
here_app_id = "###"
here_api_key= "###"
mapbox_token = "###"

# Kullanacağımız servisleri aktive edelim
mapbox_access_token = mapbox_token
locator = Here(apikey= here_api_key, app_id=here_app_id)

# Adresten konum bilgilerine erişelim
location = locator.geocode('Caferağa, Dr. Esat Işık Caddesi, Kadıköy/İstanbul')
print(location.raw)
print(location.latitude, location.longitude)

# Plotly ve mapbox ile görselleştirme
data = [go.Scattermapbox(
               lat=[location.latitude],
               lon=[location.longitude],
               mode='markers',
               marker=dict(size=10, color='gold')
            )
        ]

layout = go.Layout(width=800,
    autosize=True,
    hovermode='closest',
    mapbox=dict(accesstoken=mapbox_access_token,
                bearing=0,
                center=dict(lat=location.latitude,
                            lon=location.longitude),
                pitch=0,
                zoom=9,
                style='dark'
                )
            )

fig=go.Figure(data=data, layout=layout)
fig.show()

(1.8k puan) tarafından 
tarafından düzenlendi
studio here üzerinden APP ID ve API KEY aldım kodları da düzgünce yazdım fakat harita görünmüyor.
20,200 soru
21,726 cevap
73,275 yorum
1,887,833 kullanıcı