Hlavním problémem souvisejícím s více zeměpisnou šířkou openstreetmap je to, že může být obtížné sledovat změny zeměpisné šířky při úpravě mapy. To může být problém, pokud se snažíte sledovat změny, které byly na mapě provedeny v různých zeměpisných šířkách, nebo pokud se snažíte najít konkrétní místo na mapě.
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")
Tento kód je napsán v Pythonu.
První tři řádky importují moduly, které budou použity v kódu. Modul csv bude použit ke čtení dat ze souboru CSV, modul json bude sloužit k analýze dat JSON a modul požadavků bude použit k vytváření požadavků HTTP.
Další řádek definuje proměnnou s názvem api_key a přiřadí jí hodnotu „YOUR_API_KEY“. Zde byste zadali svůj vlastní klíč API.
Další řádek definuje proměnnou s názvem base_url a přiřadí jí hodnotu „https://maps.googleapis.com/maps/api/place/nearbysearch/json?“. Toto je základní adresa URL pro rozhraní Google Places API.
Další řádek definuje proměnnou nazvanou location a přiřadí jí hodnotu input('Zadejte zeměpisnou šířku a délku umístění do 200 km od Londýna ve formátu lat,lng: ').split(','). Tento řádek vyzve uživatele k zadání zeměpisné šířky a délky a poté rozdělí vstup na dvě samostatné hodnoty (zeměpisnou šířku a délku).
Následující řádky definují proměnné pro rádius vyhledávání a typy míst, která se mají hledat. Poloměr je nastaven na 2000 metrů a typy míst jsou nastaveny na „nemocnice“, „bankomat“ a „restaurace“.
Na následujících několika řádcích jsou odesílány požadavky HTTP GET do rozhraní API Adresáře míst Google pomocí proměnných umístění, poloměru a typu, které byly definovány dříve. Výsledky každého požadavku jsou uloženy v proměnných nazvaných results1, results2 a results3.
Nakonec kód prochází každý výsledek v každé z výsledných proměnných (results1, results2, results3) a vytiskne nějaké informace o každém místě (jméno, zeměpisná šířka, délka).
Co je OpenStreetMap
?
OpenStreetMap je bezplatný globální mapový projekt s otevřeným zdrojovým kódem. Umožňuje komukoli přidávat, upravovat a sdílet mapy světa.
Datový model OpenStreetMap
Datový model OpenStreetMap je knihovna Pythonu, která usnadňuje práci s daty OpenStreetMap. Poskytuje pohodlný způsob přístupu k datům a dotazování se na ně, stejně jako nástroje pro manipulaci a vizualizaci dat.
Zeměpisné šířky a délky v Pythonu
V Pythonu jsou zeměpisná šířka a délka reprezentovány jako plovoucí. Zeměpisná šířka se měří ve stupních severně od rovníku, zatímco zeměpisná délka se měří ve stupních východně nebo západně od nultého poledníku.