Skip to Content
Author's profile photo Marcus Zahn

Monday Knowledge Snippet (MKS) – 07 Geo-Coding levels

Today I want to shine a little light on Geo-Coding levels. Checking out the master data location in SAP TM, one will notice the enhanced section for coordinates. And one could really wonder why a location having a specific adress might need multiple coordinates.

First of all: Geo-Coding levels are completely optional when running SAP TM. The only usages currently are setting an external GIS for Geo-Coding (not using the IGS infrastructure) and to boost performance in GIS based distance determination for large scale scenarios. And here is the story behind: A few years back distance determination was based on location – location pairs, which ended up in huge external calls to a connected GIS including a large volume buffer table. To fix this, we started internal and external discussions with experts in that area and decided to switch from location – location pairs to coordinates – coordinates pairs. As quite a few TM customers are not working with street / house number coordinates for their locations, this already enables to merge multiple locations into a single distance determination. For example having location geo-coded on postal code level, just a single distance determination would be required to connect locations of two different postal codes even if there are hundreds of locations involved.

Evaluating this change, we saw that this was going into the right direction regarding performance and scalability. But we still failed to combine scenarios with a need for high accuracy, and scenarios where an aggregation would be okay. Lets give an example: Customer is based in New York. When delivering goods within the New York area, he requires distances on house number level to plan tours. When delivering to Baltimore, the planning accuracy is sufficient on postal code coordinates. When delivering to the west coast, 3-digit ZIP codes work fine. When delivering to China, region should work fine for the overview.

There are two challenges:
1. Define the right aggregation levels fitting for a scenario: Well, the external experts told us reference coordinates really boost performance, but how to find them they could not help. So we introduced Geo-Coding levels. With this function it is possible to explicitly define for each location (adress) all relevant aggregation coordinates by selecting a process controller strategy for Geo-Coding. We also delivered example implementations to use postal code and region aggregation. The pure existence of these implementations does NOT mean they are mandatory.

MKS07_GC_LVL_01_Location.jpg

MKS07_GC_LVL_02_Definition.jpg

MKS07_GC_LVL_03_Definition.jpg

2. Decide when to use which location coordinates: Well, there are many options to approach this. We went for straight line distance: Within the distance determination customizing, you can define based on the straight line distance between the involved locations which coordinates should be used for the GIS distance. (Note that the distance determination customizing really allows a lot of settings – check the documentation!)

MKS07_GC_LVL_04_DDD_Settings.jpg

MKS07_GC_LVL_05_DDD_Settings.jpg

So here is a list of hints, Dos and Don’ts:
1. Use a single Geo-Coding level if you want to use an external GIS for Geo-Coding and don’t want to use the IGS infrastructure. Define a custom GC strategy in the process controller framework and set it for this GC level. The location will then get its coordinates from this strategy.

2. Do not use multiple Geo-Coding levels if you don’t need them! Do not setup 3 GC levels just because there are 3 default implemenations by SAP. Of course it should not hurt too much, but from a data consistency and efficiency point of view it makes no sense. Even if you want to use the above mentioned distance determination boost later, you can add the levels then and re-geocode.

3. Usually GC levels should be setup in a way that the lowest GC level holds the most accurate coordinates. Technically it works fine in any way, but it certainly is easier to understand checking a scenario.

4. Good way to start: Do not use any additional GC levels and evaluate the performance. In case its not fast enough, carefully check where it would be okay to balance between performance and accuracy.

I am aware that this is at first sight a complicated topic and not in all setting it is completely clear that is only required for large scale scenarios. Nevertheless, from my point of view without it these scenarios would not be possible.

Again, details are available in the GIS Integration Whitepaper (note 1685381).

Assigned Tags

      4 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Marcus Zahn
      Marcus Zahn
      Blog Post Author
      Author's profile photo Marco Antonio Pérez Estrada
      Marco Antonio Pérez Estrada

      Hi Marcus,

      the availability GIS Integration Whitepaper is not working at all, Can you please update the link?


      I appreciate your contributions,


      Regards,


      Marco Pérez

      Author's profile photo Former Member
      Former Member

      Maybe you could try to check sap note 1685381.

      Regards, Marcelo

      Author's profile photo Marcus Zahn
      Marcus Zahn
      Blog Post Author

      Actually the link should point directly to the note that Marcelo mentioned. Maybe SAP changed that link.

      White Paper is attached to the note 1685381.