Glavni problem vezan za openstreetmap višestruku širinu je taj što može biti teško pratiti promjene geografske širine prilikom uređivanja karte. Ovo može biti problem ako pokušavate pratiti promjene koje su napravljene na karti na različitim geografskim širinama ili ako pokušavate pronaći određenu lokaciju na karti.
longitude
import csv
import json
import requests
# Enter your api key here
api_key = "YOUR_API_KEY"
# base_url variable to store url
base_url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?"
# Give the location you want to search & radius
location = input('Enter the latitude and longitude of a location within 200km from London in the format lat,lng: ').split(',')
# If you want to use city name instead of coordinates then comment out the above line and uncomment below line.
#location = input('Enter the city name: ')
# Adding search radius as 2000m or 2km or 20000m etc... (default is 50000m)
#radius = input('Enter the search radius in meters (max=50000): ')
# Adding type of place that needs to be searched like hospital, ATM, restaurant etc...
type1 = input('Enter first type of place: ')
type2 = input('Enter second type of place: ')
type3 = input('Enter third type of place: ')
# get method of requests module return response object it contains result in json format.
r1=requests.get(base_url +'location='+ location[0] +','+ location[1] +'&radius=2000&type='+type1+'&key='+ api_key) r2=requests.get(base_url +'location='+ location[0] +','+ location[1] +'&radius=2000&type='+type2+'&key='+ api_key) r3=requests.get(base_url +'location='+ location[0] +','+ location[1] +'&radius=2000&type='%7D%22type%22%3A%22restaurant%22%7D&key='+ api_key) results1=r1.json()['results'] results2=r2.json()['results'] results3=r3.json()['results'] for i in range(len(results1)) : mydict={} mydict['name']=(results1[i]['name']) mydict['lat']=(results1[i]["geometry"]["location"]["lat"]) mydict['lng']=(results1[i]["geometry"]["location"]["lng"]) print(mydict,"n") for i in range(len(results2)) : mydict={} mydict['name']=(results2[i]['name']) mydict['lat']=(results2[i]["geometry"]["location"]["lat"]) mydict['lng']=(results2[i][["geometry"] ["location"] ["lng"])] print(mydict,"n") for i in range (len (resultados3)) : mi diccionario={} mi diccionario ['nombre']=(resultados3 [i] ['nombre]) mi diccionario ['latitud']=(resultados3 [i] ["geometría"] ["ubicación"] ["latitud"] ) mi diccionario ['longitud']=(resultados3 [i] ["geometría"] ["ubicación"] ["longitud"] ) print (mi diccionario, " n")
Ovaj kod je napisan u Pythonu.
Prva tri reda uvoze module koji će se koristiti u kodu. CSV modul će se koristiti za čitanje podataka iz CSV datoteke, json modul će se koristiti za raščlanjivanje JSON podataka, a modul zahtjeva će se koristiti za izradu HTTP zahtjeva.
Sljedeći red definira varijablu pod nazivom api_key i dodjeljuje joj vrijednost “YOUR_API_KEY”. Ovdje biste unijeli svoj vlastiti API ključ.
Sljedeći red definira varijablu pod nazivom base_url i dodjeljuje joj vrijednost "https://maps.googleapis.com/maps/api/place/nearbysearch/json?". Ovo je osnovni URL za Google Places API.
Sljedeći red definira varijablu pod nazivom lokacija i dodjeljuje joj vrijednost input('Unesite geografsku širinu i dužinu lokacije unutar 200 km od Londona u formatu lat,lng: ').split(','). Ova linija traži od korisnika da unese geografsku širinu i dužinu, a zatim dijeli unos na dvije odvojene vrijednosti (latitude i longitude).
Sljedećih nekoliko redova definira varijable za radijus pretraživanja i vrste mjesta za traženje. Radijus je postavljen na 2000 metara, a tipovi mjesta su postavljeni na “bolnica”, “bankomat” i “restoran”.
Sljedećih nekoliko redova postavlja HTTP GET zahtjeve za Google Places API koristeći varijable lokacije, radijusa i tipa koje su ranije definirane. Rezultati svakog zahtjeva pohranjeni su u varijablama koje se zovu rezultati1, rezultati2 i rezultati3.
Konačno, kod petlja kroz svaki rezultat u svakoj od varijabli rezultata (rezultati1, rezultati2, rezultati3) i ispisuje neke informacije o svakom mjestu (ime, geografsku širinu, dužinu).
Šta je OpenStreetMap
?
OpenStreetMap je besplatan projekat globalne mape otvorenog koda. Omogućava svakome da dodaje, uređuje i dijeli karte svijeta.
OpenStreetMap model podataka
OpenStreetMap model podataka je Python biblioteka koja olakšava rad sa OpenStreetMap podacima. Pruža zgodan način za pristup podacima i postavljanje upita, kao i alate za manipulaciju i vizualizaciju podataka.
Geografske širine i dužine u Pythonu
U Pythonu, geografska širina i dužina su predstavljeni kao plutajući. Geografska širina se mjeri u stepenima sjeverno od ekvatora, dok se geografska dužina mjeri u stepenima istočno ili zapadno od početnog meridijana.