Geocoding occurs when a user switches to the map view on the home screen. Inquiries that are geocoded on the app, will then have their lat/long saved back to MarketSharp.
Geocoding contacts occurs when a user logs in initially if the contact has an appointment within the +/- 30 day date range. Contacts that are attempted to geocoded are only geocoded on the device. It is does not save back to MarketSharp.
In some cases, contacts may have the incorrect lat/long saved in MarketSharp. The user may find themselves in China or some other place on the other side of the world. This is a result of a lat/long being incorrect from previous data conversions. If a user discovers this, they will need to have to this corrected in the database.
If an appointment/contact does not appear to be showing up on the map. One of the following could be happening:
- They do not have an inquiry address
- The inquiry address is not a valid address
- The inquiry address has already been attempted to be geocoded
- They do not have a contact address
- The contact address is not valid
- The contact address has already been attempted to be geocoded
For Appointments that have a valid address, a static image for the address is displayed. The imagery for the address is provided by Google StreetView. Tapping on the static image brings up the interactive StreetView to explore the surroundings.
- Static StreetView image: Based on the address.
- Interactive StreetView: Based on the geocoded latitude and longitude of the address.
- Due to the static image and the interactive StreetView being based on both address and latitude/longitude, it is possible the locations will not be exact. The address can help determine what side of the street the address is on. Latitude and longitude is a single point and can't specify what side of the street to face the StreetView. Discretion will be need to be taken to ensure viewing the correct location.
The service used for geocoding is called SmartyStreets. The service only allows a certain number of requests to be made in a given amount of time. If the service receives too many requests in a duration of time, the service will temporarily throttle and block requests which causes an HTTP 429 error. These errors are temporary and should resolve themselves after load on the system decreases. More information on this issue can be found at: https://www.smartystreets.com/docs/cloud/us-street-api.