Page 1 of 1
address to latitude and longitude?
Posted: Mon Jun 12, 2023 9:22 am
by Fangbeast
Does anyone know how to lookup/convert a given address to latitude and longitude?
I've added an amateur log record to my current project and wanted to make it a bit easier to add information. Got everything else sorted on that form but this last bit.
Re: address to latitude and longitude?
Posted: Mon Jun 12, 2023 2:04 pm
by jassing
Re: address to latitude and longitude?
Posted: Mon Jun 12, 2023 2:44 pm
by Fips
Hi,
I usually use something like this:
Code: Select all
Structure Address
street.s
zipcode.s
city.s
Country.s
EndStructure
Structure Coordinates
lat.s
lon.s
EndStructure
Procedure.i GetCoordinatesFromAddress(*Address.Address, *Coordinates.Coordinates)
Protected.i HttpRequest
Protected.s request
Protected.i json_nr
Protected.s request_answer
Protected NewList HttpsRueckgabe.Coordinates()
request = "http://nominatim.openstreetmap.org/search/" + URLEncoder(*Address\street + "," + *Address\zipcode + "," + *Address\city + "," + *Address\Country) + "?format=json&polygon=1&addressdetails=1"
HttpRequest = HTTPRequest(#PB_HTTP_Get, request,"",#PB_HTTP_NoSSLCheck)
If HttpRequest
request_answer = HTTPInfo(HTTPRequest, #PB_HTTP_Response)
FinishHTTP(HTTPRequest)
json_nr = ParseJSON(#PB_Any, request_answer)
If json_nr
ExtractJSONList(JSONValue(json_nr), HttpsRueckgabe())
If ListSize(HttpsRueckgabe()) >= 1
ForEach HttpsRueckgabe()
*Coordinates\lat = HttpsRueckgabe()\lat
*Coordinates\lon = HttpsRueckgabe()\lon
Break
Next
FreeJSON(json_nr)
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
EndProcedure
Define MyAddress.Address
Define MyCoords.Coordinates
With MyAddress
\Country = "Germany"
\city = "Rust"
\zipcode = "77977"
\street = "Europa-Park-Straße 2"
EndWith
If GetCoordinatesFromAddress(@MyAddress, @MyCoords)
With MyCoords
Debug "Lat: " + \lat
Debug "Long: " + \lon
EndWith
Else
Debug "Address not found."
EndIf
Originally taken and modified for my use from there (I believe):
viewtopic.php?t=66320
I'm not sure if the structure of addresses is the same in every country (like zipcodes and street names) but it works for my country. Maybe it helps.
Re: address to latitude and longitude?
Posted: Mon Jun 12, 2023 9:58 pm
by Fangbeast
Thanks Jassing and Fips. Will put this into my bucket of "Must use and bash into my code somehow" s it is needed. Working like a demon most days to finish this damned project and this part is needed.
Re: address to latitude and longitude?
Posted: Mon Jun 12, 2023 11:27 pm
by jassing
Fangbeast wrote: Mon Jun 12, 2023 9:58 pm
Thanks Jassing and Fips. Will put this into my bucket of "Must use and bash into my code somehow" s it is needed. Working like a demon most days to finish this damned project and this part is needed.
Hope it helps -- FWIW -- I live mildly rurally ( about 3 miles outside of a small city in Washignton state, USA; both my suggestion & @fips code failed to locate my lat/lon - despite the USPS being able to ...
So if you're program is Austrailian-centric - i would look to the government's postal service to see if they provide something. In the USA, the postal service has a web-service that does match my address to an approximate lat/lon.
Re: address to latitude and longitude?
Posted: Tue Jun 13, 2023 6:42 am
by idle
Pb OpenStreetMap should have that