Document toolboxDocument toolbox

14.1 GeoCoding

Introduction

With the introduction of the interactive maps in the web-based Gantt scheduling requires the lattitude and longitude of an address so that it may display a map pin. The Scheduling integration doesn't require a lat/lon to be passed meaning the Gantt required a function for geocoding the given address via HERE Technologies (ServicePower's Mapping Provider) in order to display the pin. The initial implmentation of this resulted in this work being undertaken by the Gantt client and resulted in unnecessary duplicate calls and loading time each time the map was opened.

To make this more efficient and faster we can cache the geocoding results on the server and, in most cases, remove entirely the need for Gantt clients to request them from HERE, vastly improving the map load time on the Gantt.

Jobs booked in scheduling server with no lat/lon will make an asynchonous geocoding request via HERE. The results will be stored in the new geocode cache. 


Please Be Aware

Any lat/lons requested through this system will not be used for scheduling purposes such as travel calculations. The address provided at booking is the authority with regards to scheduling. The geocode cache's only purpose is to populate the map pins on the web-based Gantt.


Parameter changes 

TABLE: SP083_SYSTEM_PARAMETERS

Database Name

Database Description

M
O

Scope

Min Value

Max Value

Initial Value

Default Value

gc_country_code

ISO 3166-1-alpha-3 country code list used in geocode lookups

O

F

n/n

n/n

Null

none

gc_enabled

Address geocoding enabled for Gantt clients

O

F

n/n

n/n

'NO'

'NO'

gc_retry_max_interval

Maximum interval between retries in seconds

O

F

30

86400

600

600

gc_retention_window

Number of days geocode cache entries will persist in the database from initial write

O

G

0

730

365

365

http_concurrent_max

Maximum concurrent http requests

O

F

1

60

10

10

heremaps_api_key

The API key to be used in HERE requests

O

G

n/a

n/a

Null

none


As this feature currently relies on HERE, an app id and app code is mandatory for this feature to function.

Please Be Aware

  • As this feature currently relies on HERE, an app id and app code is mandatory for this feature to function.
    • Please contact SP Support if you require the App ID 
    • SP083.postcode_app_code and SP083.postcode_app_id must not be empty if gc_enabled is set to 'YES'.
  • The sp083 parameter gc_country_code may be used to narrow searches to specific countries.
    • Each country must be an ISO_3166-1_alpha-3 entry.
    • Multiple country codes can be set using a csv, e.g. "USA,CAN".
    • If this parameter is left empty the search will be global.

TABLE: SP245_ID_CONFIGURATION

Additional entry

ID: Geocode

Example Configuration:

<Server>
<SP_ServerID>Geocode</SP_ServerID>
<SP_Api_Key>HERE_API_KEY</SP_Api_Key>
<SP_Contry_Code>HERE_APP_CODE</SP_App_Code>
GET https://search.hereapi.com/v1/geocode?apiKey=HERE_API_KEY' + '&' + 'in=countryCode:COUNTRY_CODE' + '&' + 'qq=postalCode=' + CHAR(10) +
<LatitudePath>/items/0/position/lat</LatitudePath>
<LongitudePath>/items/0/position/lng</LongitudePath>
</Server>

There are 2 new parameters associated with the geocode configuration.

  • LatitudePath - A JSON path used to locate the latitude property in the response
  • LongitudePath - A JSON path used to locate the longitude property in the response