This is documentation of an archived release.
For documentation on the current version, please check Knowledge Base.

Notes on Geocoding Plugins

When using the Orbit WebClient using the Javascript API you can make use of a client-side “Geocode Plugin”. These plugins can be used to let the user of a Publication reverse geocode a location.

Add/Remove Plugins

Geocode plugins are stored here :

/server/program/services/publisher/publication_geocode_plugins

Adding or removing plugins on the Publisher server is as easy as adding or removing files from this folder. Each geocoding plugins is defined by this set of files :

  • <plugin-name>.js : The javascript implementation.
  • <plugin-name>.png : The icon (must be 32×32 pixels).

Implementing Plugins

When implementing a geocoding plugin, you can expect this object to exist :

  • orbit.webclient.GeocodePlugin

Your implementation should provide the following objects :

  • Object : orbit.webclient.GeocodePlugin.<plugin-name>
  • Function : orbit.webclient.GeocodePlugin.<plugin-name>.geocode()

geocode()

Signature : geocode(query,handleResult,handleFault).

/**
 * Implements the geocoding request.
 * @param query the user query string.
 * @param handleResult the function to call when geocoding results arrive.
 * @param handleFault the function to call when an error occurs.
 */
orbit.webclient.GeocodePlugins.<plugin-name>.geocode = function(query,handleResult,handleFault) 
{
   // ...
}  	

When a geocoding result is found, the plugin should call handleResult(results) :

  • results : An array of result objects.
    Each item in the array should have these properties :
    • coordinate : object with x and y properties defining a coordinate. (x=longitude, y=latitude).
    • crs : the crs code (the epsg code, for example 4326 for Lat/Lon).
    • boundingbox : the bounding box (optional)
      • minx
      • miny
      • maxx
      • maxy

When an error occurs, the plugin should call handleFault(error) :

  • error : An object with error details.
    The 'error' object has these properties :
    • code : a code defining the error.
      Possible values :
      • query_limit_reached : the service returned that a limitation of some kind prevents it from returning results.
      • network_error : an error occurred on the network-level.
      • no_permission : the service returned that a permission problem occurred.
      • service_error : an error occurred on the server side.
      • plugin_error : an error occurred on the plugin side.
    • message : a message describing the error in more detail in english.
 
Last modified:: 2020/11/06 19:15