Select to view content in your preferred language

Expose routing functionality through REST APIs

73
3
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

 

3 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