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. | 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 | 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 | 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. | 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. | Can geocode diverse addresses with very high precision | Not accessible for everyone |
GOOGLE_GEOCODING_WITH_PINCODE_VALIDATION | Uses Google Geocoding API with an added layer of validation based on pincode to return the coordinates for address. | Can geocode diverse addresses with very high precision | Not accessible for everyone |
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. | Can geocode diverse addresses with very high precision | Not accessible for everyone |
SHIPSY_LOCALITY_SEARCH_PRECISE | Uses locality matching according to the precision of the locality to return the coordinates of the address | Geocodes based on locality data made by user inputs. Higher precision due to intelligent locality matching. High accuracy for Indian Metropolitans | Low success percentage |
SHIPSY_LOCALITY_SEARCH_NON_PRECISE | Uses locality matching to return the coordinates of the address | Geocodes based on locality data made by user inputs. | Low success percentage |
SHIPSY_LOCALITY_SEARCH | A combination of SHIPSY_LOCALITY_SEARCH_PRECISE and SHIPSY_LOCALITY_SEARCH_NON_PRECISE | Geocodes based on locality data made by user inputs. Higher precision due to intelligent locality matching. High accuracy for Indian Metropolitans | Low success percentage |
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 | 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.