- 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()