Street Address

Hi there,

I have lat and long figures which I converted to coordinates using nodes from the Palladian suite.

Can someone let me know if there is a way to get street addresses from the coordinates and what nodes I will need to use?

Thank you.

Hi ViTLe,

I haven’t tried it, but did you have a look at the ReverseLocationLookup Node?
If that doesn’t work you could always use one of the big map provider api´s to do a reverse lookup
For example GoogleMaps.

Best Regards,

Paul

3 Likes

Hi @ViTLe

As @goodvirus suggested, Palladian provides a set of nodes for this kind of tasks. I’m far from being a specialist but I just tried them a bit to generate addresses from lat+long coordinates based on the following workflow example I built:

To get it to run, you would need to go to Preferences → Palladian → Location Extractor

as follows:



As shown above, you will need to create too your own account at www.geonames.org to have access from KNIME to their geographical database. Be aware that at a given stage of the account creation, you will get an email to validate your geonames account creation.

Please be aware too that this service is free but limited in the whole maximum amount of bulk queries you can do per day and per hour. It seems to be limited to 30,000 REST request/day and 2,000 REST requests/hour. Keep in mind that in your case a Lat+Long request may generate several REST request because it is done based on a minimum radius of 1 Km.

I had fun trying these nodes and sharing the above experience but as I said I’m far from being a specialist in this subject, so surelly others will provide better help :slightly_smiling_face:

The minimalist workflow is here below:

20220111 Pikairos Street Address.knwf (508.6 KB)

Nevertheless hope it helps :slight_smile:

Kind regards,

Ael

14 Likes

@aworker Great tutorial, I’ll definitely keep this as a bookmark! :+1:

3 Likes

Some time ago there was a similiar request about mapping coordinates to ground based information find out the "ground" based on given coordinates (e.g. car road, train track, bicycle path, forest, ...)
There the focus was just on understanding the objects at the given point.
Maybe that contains some more food for thought.

2 Likes

@ViTLe you should keep in mind that when you use external services to check geo references you reveal to a third party what you do. Someone on the server might register a pattern. If you just test something this might not be a problem.

If you check large numbers of for example customer data or explore new opportunities for businesses you should keep in mind that even if you would not send very specific data your requests might show a pattern along with your IP or domain (for example which area you are exploring). Typically request get logged on such servers.

Not to spoil the fun with geo, just a note to keep these aspects in mind :slight_smile:

5 Likes

Hi @aworker thank you for this awesome workflow, I am going to try it out but I wanted to ask, wth the max num of bulk requests, what happens when I hit that limit? Does it simply not action it?

The work I am doing does back 12 months so there is tens of thousands of rows of data so it might hit that limit.

@mlauber71 thank you for this tip. I will have to mention this to my manager as the work we do confidential and they can decide if they think it’s worth it or not.

@knimediger thank you for the source of information. Good to have more knowledge with Knime always.

@goodvirus I haven’t tried this node yet actually. So far I have only tried the ‘Latitude/Longitude to Coordinate’ note but I am about to look into the node you suggested, thank you :slight_smile:

Hi @ViTLe

It just fails and from there you need to wait for an 1 hour before being able to send a request again. I’m completing the workflow to make it more robust and resilient to failure. I’ll be back soon :wink:

Best

Ael

2 Likes

Hi everyone, thanks @aworker for the workflow, it was brilliant and allowed me to get some street names. The results were good but I needed more specific addresses, like down to street number etc.

I did some research and found I could use an API (that was given to me) and the GET Request node to retrieve the data.

I used this: https://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat,long + "&key= and the string manipulation to create the URL and from GET Request, got some JSON data so I used and JSON to XML and a bunch of XPath to extract the data I needed and was able to grab more specific addresses.

Incase this helps anyone else to retrieve addresses from lat & long


If you want to do the opposite, where you want lat & long from an address: Google had this URL:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

I hope this helps someone else!

I love the Knime Community, so many super smart and nice people so I wanted to return the favour/pay it forward.

Thanks everyone!

2 Likes

Hi @ViTLe

Thanks a lot for your so kind and nice comments. It is true, the KNIME community is great at helping each other. Thanks too for contributing to the forum with your awesome Google example :slight_smile: :+1: !

I have completed the initial workflow based on Palladian nodes creating eventually a more complex and robust version. It handles the problem of bulk submission by first trying to retrieve all the LAT-LON addresses from a lookup file provided by geonames.com. If the LAT-LON locations are not present, then it uses the Palladian nodes but this time taking care of not blocking the server with too often requests.

I believe this workflow can be used as an example of how to deal with bulk API requests that are limited in time. Maybe you will need to deal with this same problem when accessing www.googleapis.com/maps or any other API service.

The workflow is available from the KNIME hub at the following link:

Thanks and kudos to the Palladian Team for making available such a great plugin.

Good luck @ViTLe with your project which sounds really interesting.

Best wishes,

Ael

5 Likes

@aworker Thank you for this! This is really good for when I don’t have an API key to use, in my case luckily I had one.

1 Like

Hi @ViTLe

Thanks for your kind comments ! You are right lol, your solution is really a very good one in this case. Do you think you could post it here as a workflow ? I guess many forum members would be happy to use it. I believe it is great.

Best wishes,

Ael

Where did you get the allcountries file to download? I saw no download link.
br

Hi @Daniel_Weikert

This is explain in the workflow and in the KNIME hub repository:

The full content file is called “allCountries.txt” and can be downloaded from GeoNames as a zipped file.

Best

Ael