Geocoding Strategy

What is Geographical Coordinate System?

A geographical coordinate system is a reference system used to locate points on the earth's surface. It is based on the use of latitude and longitude coordinates, which are defined in relation to the earth's equator and prime meridian respectively.

A latitude - longitude pair will uniquely identify any point on earth.

What is Geocoding?

Geocoding is the process of converting an address or a location name into geographic coordinates (latitude and longitude) that can be used to locate it on a map. 

Self- evidently, Reverse geocoding is the process of converting geographic coordinates (latitude and longitude) into a physical address or location name

What are the success metrics of a Geocoding engine?

Percentage success - Percentage of addresses which were actually geocoded as compared to total number of addresses

Distance of geocoded addresses from actual location - Lower the better, ideally 0. 

What are our Geocoding Strategies?

Strategy

Information Box

Pros

Cons

ONLY_AWS_GEOCODING

Uses AWS GEOCODING API to return the coordinates.
Pincode,City,Country are mandatory fields

Can geocode diverse addresses with high success percentage. Average Geocoding precision.

Can be imprecise for remote locations or for some areas

AWS_GEOCODING_WITH_PINCODE_VALIDATION

Uses AWS GEOCODING API and adds a layer of validation based on input pincode
Pincode,Country are mandatory fields

Can geocode diverse addresses with high precision

Geocodes lesser addresses due to validation

AWS_GEOCODING_WITH_CITY_BOUND_VALIDATION

Uses AWS GEOCODING API and adds a layer of validation based on input city
City,Country are mandatory fields

Can geocode diverse addresses with above average precision

Geocodes lesser addresses due to validation

ONLY_GOOGLE_GEOCODING

Uses Google Geocoding API to return the coordinates for address.
Country is a mandatory field
Important: Will only work for your org if APIkey is configured. Google geocoding is chargeable

Can geocode diverse addresses with very high precision and a very high success percentage

Not accessible for everyone

GOOGLE_GEOCODING_WITH_SECTOR_VALIDATION

Uses Google Geocoding API with an added layer of validation based on sector data(if available) to return the coordinates for address.
Country is a mandatory field
Important: Will only work for your org if APIkey is configured. Google geocoding is chargeable

Can geocode diverse addresses with very high precision

Not accessible for everyone
Reduced success percentage due to validation

GOOGLE_GEOCODING_WITH_PINCODE_VALIDATION

Uses Google Geocoding API with an added layer of validation based on pincode to return the coordinates for address.
Country is a mandatory field
Important: Will only work for your org if APIkey is configured. Google geocoding is chargeable

Can geocode diverse addresses with very high precision

Not accessible for everyone
Reduced success percentage due to validation

GOOGLE_GEOCODING_WITH_CITY_BOUND_VALIDATION

Uses Google Geocoding API with an added layer of validation based on input city to return the coordinates for address.
Country is a mandatory field
Important: Will only work for your org if APIkey is configured. Google geocoding is chargeable

Can geocode diverse addresses with very high precision

Not accessible for everyone
Reduced success percentage due to validation

SHIPSY_LOCALITY_SEARCH_PRECISE

Uses locality matching according to the precision of the locality to return the coordinates of the address
Country and Pincode are mandatory fields

Geocodes based on locality data made by user inputs. Higher precision due to intelligent locality matching. High accuracy for Indian Metropolitans

Low success percentage
Low accuracy outside major Indian metropolitans

SHIPSY_LOCALITY_SEARCH_NON_PRECISE

Uses locality matching to return the coordinates of the address
Country and Pincode are mandatory fields

Geocodes based on locality data made by user inputs.

Low success percentage
Low accuracy outside major Indian metropolitans

SHIPSY_LOCALITY_SEARCH

A combination of SHIPSY_LOCALITY_SEARCH_PRECISE and SHIPSY_LOCALITY_SEARCH_NON_PRECISE
Country and Pincode are mandatory fields

Geocodes based on locality data made by user inputs. Higher precision due to intelligent locality matching. High accuracy for Indian Metropolitans

Low success percentage
Low accuracy outside major Indian metropolitans

PINCODE_CENTER

Considers input pincode and returns the geometric center of the pincode as coordinates.

Very high success percentage. Very good fallback option

Low precision

ORGANISATION_SPECIFIC_PINCODE_MAPPING

Returns coordinates as stored for a particular softdata entry at an organisation level
Organisation ID and Pincode are mandatory fields

100% accuracy and 100% precision

Data needs to be updated regularly

How to decide your geocoding strategy sequence?

When deciding a sequence in mind you must keep in mind that the address sent for geocoding is tried with the first strategy first , if successful it returns the coordinates else it moves on to the next strategy. So on and so forth till the last strategy. If even the last strategy fails, the geocoding engine send an error saying “Unable to geocode using given strategies”. 

In a general scenario , you would like to put the strategy with highest precision but least success% at the first position while putting the strategy with the least precision but highest success% at the last position. This will enable you to get the most of precision and success% together.

However, there might be certain use cases which might not need the same logic. For eg a client is doing long intercity deliveries. They dont need the geocoding to be rooftop accurate. So you can put the PINCODE_CENTER strategy while keeping ONLY_AWS_GEOCODING as 2nd to take up all the cases where input pincode wasnt provided.