Question

Consuming arcgis locator service in FME for geocoding

  • 28 January 2016
  • 8 replies
  • 28 views

I am wondering if anybody has an idea of using ArcGIS server locator service in FME for geocoding.

Your direction would be appreciated.


8 replies

Badge

There are Google and arcgisonline geocoder transformers on the FME store. Alternatively I have used OpenCage geocoder before which is useful and it shouldn't be too hard to hit that service using javascript, also it's open source.

https://store.safe.com/transformers/arcgisonlinege...

https://geocoder.opencagedata.com/

Badge +10

Do you mean this one?

You can generally use FME to leverage an API, though unless someone has already done the work for you like in the ArcGISOnlineGeocoder and GoogleGeocoder that @marko mentions, you'll need to build this as a workspace or custom transformer yourself. This session highlights some approaches:

Badge

@chad - Using custom locators would be very helpful for us too. Beyond just turning addresses into geometry (or reverse), I think there are a lot of use cases for this. As an example, our city necessarily has multiple locators and it would be very easy to compare results between them and find the differences. That would also allow easy testing of new locators.

Badge +16

ArcGIS for Server Geocode services all have a well documented REST API that you can easily hit from FME (with a little work handling JSON). You can geocode individual addresses or batches of addresses, or do reverse geocoding.

Badge

https://geocoder.opencagedata.com/

My preference would be to hit this service using python.

It should be fairly simple to add in your workspace attributes/parameters into the below code and receive the geocode position back (presumably in json or WKT but I haven't tested it). What do you have that you need to geocode? This free service only works with town names and post codes, you might find it isn't as accurate as some services out there but its free. You could use a pythoncaller to send the request off to their servers, you will need to request an API key from their site.

#!/usr/bin/env pythonfrom opencage.geocoder import OpenCageGeocoder key = 'your-api-key-here' geocoder = OpenCageGeocode(key)

query = "Krishnamurti Puram, Mysore, India" result = geocoder.geocode(query)

Badge

I wonder if anyone has tried this with Portal for ArcGIS.

Badge +1

@geospatiallover Did you get this to work with Portal for ArcGIS?

Badge +16

This pattern will work.

 

https://community.esri.com/t5/arcgis-data-interoperability/fast-batch-geocoding-in-any-environment-with-arcgis-data/ba-p/1050603

 

Reply