Select to view content in your preferred language

Expose routing functionality through REST APIs

90
5
a week ago
Status: Open
VenkataKondepati
Regular Contributor

Hi Team,

I am in the process of developing a custom solution for supply chain management to manage disruptions and optimize the supply chain effectively. My application will allow users to review the fleets and check if there are any issues, make decisions dynamically to avoid expedited delivery and spend more money.

I am thinking to use modern technologies to scale it up large datasets.
1. Snowflake (with Apache Sedona plug-in)

2. Graph data to find the relationships

3. Routing functionality

4. ML models with Graph etc.

Is it possible to use some portions of Routing functionality available in ArcGIS Pro with Network Analyst without using desktop-based solutions?
I understand that we can achieve with ArcGIS JavaScript API and Enterprise, but it will be heavy lifting for non-GIS customers. We want to use lightweight version of GIS and integrate with other technologies.

 

Please let me know your thoughts.

Regards,

Venkat

 

5 Comments
deelesh

Hi Venkat,

All of the routing functionality available in ArcGIS Pro can be accessed via RESTful web services using either ArcGIS Enterprise, ArcGIS Online, or ArcGIS Location Platform products. Out of these three products, ArcGIS Enterprise provides the ability to host these routing services in your own infrastructure. But you also need to manage the underlying infrastructure as well as the street data used by routing services.  The other two product options are Software As a Service (SaaS) based in which your app only needs a subscription to access the routing services. The infrastructure to host the services as well as the street data is managed by Esri.

Based on your workflow, It seems to me that ArcGIS Location Platform can be a valid choice.

Please refer to the following links to learn more: 

Routing services

ArcGIS Location Platform

 

Hope this helps

Deelesh

 

 

 

VenkataKondepati

Hi Deelesh,

Thanks for providing the response and details.

My point is that do they work outside of ESRI Eco-system to integrate with Snowflake based Apache Sedona database and work without any compatibility issues.

How does the licensing options work in this scenario? Do we need to introduce ESRI products to non-GIS clients?

I am trying to explore the easy and cost-effective solutions but not to reinvent the wheel.

Regards,
Venkat

 

deelesh

Hi Venkat,

I don't have any experience working with Apache Sedona. But based on my cursory reading about Apache Sedona, Esri routing capabilities will not work natively as a spatial data type supported in Apache Sedona.

Esri routing capabilities require the transportation network (i.e. your street data) to be modeled in a network dataset which can only be stored in an Esri supported geodatabase such as file based formats like file geodatabase or mobile geodatabase (which is SQLite based) or enterprise geodatabases such as PostgreSQL, SQL Server and others. Full list of supported enterprise geodatabase are listed here

Note that although Esri supports cloud data warehouse in Snowflake, geodatabase is not supported in Snowflake which means you cannot store a network dataset in Snowflake hosted data warehouse as described here

Even if you are able to store a network dataset in a geodatabase, in order to run routing algorithms on a network dataset, you will need access to Esri software (either ArcGIS Pro or ArcGIS Enterprise or ArcGIS GeoAnalytics Engine). 

My previous suggestion of using ArcGIS Location Platform, simplifies the entry point and to some extent licensing for using Esri's routing technology as compared to using ArcGIS Pro or ArcGIS Enterprise.

If you use ArcGIS location platform, your app (or any backend process) can access Esri's routing capabilities via RESTFul services that are hosted and managed by Esri. ArcGIS Location platform simplifies the licensing aspect by providing the use of routing services as purely consumption based. You app can do all the work of interacting with routing services using any SDK that allows working with RESTful services such as ArcGIS API for Python without the actual end user even knowing that the app uses Esri's routing services. However in this model your app will be responsible for managing the subscription required to work with routing services.

Another Esri product that can be useful is ArcGIS GeoAnalytics Engine.

Geoanalytics engine supports routing in Apache Spark environments such as Databricks, Amazon EMR, and Azure Synapse Analytics. It has it's own licensing requirement  It requires the network dataset to be stored in a file based format specifically a mobile geodatabase.  But it provides access to Esri's routing capabilities in a native Apache Spark environment without end users knowing anything about Esri products.

 

Hope this helps

Deelesh 

 

 

 

VenkataKondepati

Hi Deelesh,


Thanks a lot for your detailed explanation — that really helps!

I can also work with Databricks, since we already have that environment set up. My use case is focused on building a custom application that integrates Neo4j (graph database) with GIS routing and spatial analysis.

We’re using Neo4j to analyze relationships and patterns around supply chain disruptions, and applying ML models to assess the potential impact when certain routes or suppliers change. At the same time, I want to bring in GIS-based routing to evaluate the geolocation impact — essentially, where the problem is occurring and how it affects the overall network.

So in short:

  • Graph (Neo4j) helps answer “what’s connected and what’s impacted.”

  • GIS (ArcGIS) helps answer “where the issue is happening.”

  • The combination helps model alternative routing solutions to minimize risk or delays.

Since there are multiple technologies involved (Graph DB, GIS, ML, and Databricks), my goal is to keep the solution simple and outcome-focused for clients — showing them where and what the disruption is, and how it can be resolved without overloading them with technical details.

I will explore the options you suggested with Databricks and Geoanalytics engine.

Regards,

Venkat





deelesh

Hi Venkat,

   I am glad we have some options that can work for you. Feel free to reach out in case you need additional info.

Thanks

Deelesh