Search
Link Search Menu Expand Document
Kony Quantum is now HCL Volt MX. See Revised Terminology. Current Quantum users, see the important note about API naming.

voltmx.map Namespace

The voltmx.map namespace provides support functions for use with the Map widget. This section contains reference information about the voltmx.map namespace in the following topics.

Constants

The voltmx.map namespace defines the following constants.

Map Provider Constants

The Map Provider Constants enable your app to select which map provider to use.

Constant Description
voltmx.map.MAP_PROVIDER_BING Select Bing as the map provider. This constant is available on all platforms except SPA/Desktop Web.
voltmx.map.MAP_PROVIDER_GOOGLE Select Google as the map provider.
Map View Mode Constants

Use the Map View Mode Constants to configure which map view your app selects.

Constant Description
voltmx.map.MAP_VIEW_MODE_NORMAL View the map in whatever mode is the default for the map provider.
voltmx.map.MAP_VIEW_MODE_SATELLITE View the map as a satellite image.
voltmx.map.MAP_VIEW_MODE_STREET View the map as a street map.
voltmx.map.MAP_VIEW_MODE_TRAFFIC View traffic information on the map.
Map Widget Error Codes

The following table lists the error codes that the Map widget generates.

Constant Description
voltmx.map.ROUTE_SEARCH_INVALID_REQUEST The format of the route search request was invalid.
voltmx.map.ROUTE_SEARCH_LIMIT_EXCEEDED The service has received too many requests from your application within the allowed time period. For Android, below are the usage limits imposed by Google Map Service. Up to 8 waypoints for Google Map free API and 23 waypoints for Google Map for Work in each request 2500 & 100000 direction requests per 24 hour period for free API and work api respectively. 2 and 10 requests per second for free API and work API respectively.
voltmx.map.ROUTE_SEARCH_NETWORK_FAILURE The request failed due to network failure.
voltmx.map.ROUTE_SEARCH_PLACE_NOT_FOUND At least one of the locations specified in the request’s source, destination, or waypoints could not be found.
voltmx.map.ROUTE_SEARCH_UNKNOWN_ERROR An unknown error occurred.
Pin Image Anchor Constants

The Pin Image Anchor Constants define the positions that your app can anchor a pin image to on a map. The image positions are illustrated in the image below.

Constant Description
voltmx.map.PIN_IMG_ANCHOR_BOTTOM_CENTER Anchors the pin image at the bottom center position.
voltmx.map.PIN_IMG_ANCHOR_BOTTOM_LEFT Anchors the pin image by its lower left corner.
voltmx.map.PIN_IMG_ANCHOR_BOTTOM_RIGHT Anchors the pin image by its lower right corner.
voltmx.map.PIN_IMG_ANCHOR_CENTER Anchors the pin image at the center position.
voltmx.map.PIN_IMG_ANCHOR_MIDDLE_LEFT Anchors the pin image at the middle left position of the image.
voltmx.map.PIN_IMG_ANCHOR_MIDDLE_RIGHT Anchors the pin image at the middle right position of the image.
voltmx.map.PIN_IMG_ANCHOR_TOP_CENTER Anchors the pin image at the top center position.
voltmx.map.PIN_IMG_ANCHOR_TOP_LEFT Anchors the pin image by its upper left corner.
voltmx.map.PIN_IMG_ANCHOR_TOP_RIGHT Anchors the pin image by its upper right corner.
Pin Image Type Constants

These constants define the types of images that can be used with maps.

Constant Description
voltmx.map.PIN_IMG_SRC_TYPE_BASE64 Indicates that the pin image should be created out of given a base64 string.
voltmx.map.PIN_IMG_SRC_TYPE_FILE_PATH Indicates that the pin image is available in internal file system. The specified value can be either an absolute path or a File object.
voltmx.map.PIN_IMG_SRC_TYPE_IMAGE Indicates that the pin image is of type Image object
voltmx.map.PIN_IMG_SRC_TYPE_RESOURCES Indicates that the pin image is available in bundled resources.
Shape Type Constants

The following constants identify the shapes that can be drawn on maps.

Constant Description
voltmx.map.SHAPE_TYPE_POLYGON The shape is a polygon.
voltmx.map.SHAPE_TYPE_POLYLINE The shape is a polyline.
voltmx.map.SHAPE_TYPE_CIRCLE The shape is a circle.

Functions

The voltmx.map namespaces contains the following functions.

voltmx.map.containsLocation

This function tests to see whether a specified location is within a circle or polygon on a map or whether it lies along a polyline on a map.

Syntax

voltmx.map.containsLocation(  
shapeType,
location,
shapeData)

Input Parameters

Parameter Description
shapeType Contains a Shape Type Constant that defines which kind of shape the location is being tested against.
location Holds a location object which contains lat and lon values.
shapeData A key-value pair object that defines the shape using the following keys: > locations [Array]: List of locations that defines a given shape. Each element in Array is an Object, which contains latitude and longitude values. For Circle, only first value in Array is considered.radius [Number]: Radius that is needed to define circle shape. This key is only valid of shapeType is Circle and ignored for other shapes.tolerance [Number] [Android]: Specify tolerance in meters when user is interacting with Polyline or Polygon. Not applicable for other shapes.

Examples

Example 1: Polyline

//Defining the shapeData parameter  
  var shapeData = {
    locations: [{
        lat: "17.451759",
        lon: "78.380806"
    }, {
        lat: "17.473305",
        lon: "78.425191"
    }],
    tolerance: 200,
};
//Defining the location parameter
var location = {
    lat: "17.427789",
    lon: "78.451751"
};  
//Checking if the location mentioned falls on the polyline  
var value = voltmx.map.containsLocation(voltmx.map.SHAPE_TYPE_POLYLINE, location, shapeData);	

Example 2: Circle

//Defining the shapeData parameter      
var shapeData = {
    locations: [{
        lat: "17.451759",
        lon: "78.380806"
    }],
    radius: 1000
};
//Defining the location parameter
    var location ={
      lat: "17.451759", 
      lon: "78.380806"
    };
//Checking if the location mentioned falls inside the circle           
var b = voltmx.map.containsLocation(voltmx.map.SHAPE_TYPE_CIRCLE, location, shapeData);	

Return Values

True if the location is within the circle or polygon, or if it lies along the polyline. Otherwise, false.

Remarks

For detailed information on how to use this function and what parameter values are valid, please see Map API.

Platform Availability

Available on Android and iOS.

voltmx.map.distanceBetween

This function finds the linear distance between two locations on a map.

Syntax

voltmx.map.distanceBetween(  
    location1,  
    location2)

Input Parameters

Parameter Description
location1 Contains the first location to use.
location2 Contains the second location to use.

Example

//Defining pin 1.      
var pin1 = {
    id: "id1", // id is mandatory for every pin in dictionary
    lat: "17.4947934",
    lon: "78.3996441",
    name: "KPHB",
    image: "pinb.png",
    focusImage: "focusImage.png", //focus image will be shown when map pin is selected
    desc: "Kukatpally",
    showCallout: true,
    meta: {
        color: "green",
        label: "A"
    }
};
//Defining pin 2.
var pin2 = {
    id: "id2", // id is mandatory for every pin in dictionary
    lat: "17.3616",
    lon: "78.4747",
    name: "Charminar",
    image: "pinb.png",
    focusImage: "focusImage.png",
    //focus image will be shown when map pin is selected
    desc: "In Hyderabad",
    showCallout: true,
    meta: {
        color: "green",
        label: "B"
    }
};

//Adding pins.
this.view.MainMap.addPins([pin1, pin2]);
//Calculating the distance between the two pins.    
var distanceInMeters = voltmx.map.distanceBetween(pin1, pin2);

Return Values

A number that specifies the distance between the two input locations.

Platform Availability

Available on Android and iOS.

voltmx.map.decode

This function enables apps to to decode the encoded polyline points which are provided in search route results. In Android, each step in the search results contains a key.

Syntax

voltmx.map.decode(  
    encodedPolylinePoints)

Input Parameters

Parameter Description
encodedPolylinePoints Hold a string containing the encoded polyline points.

Return Values

An array containing only the lat/lon values.

Example

var polylineConfig = {
    lineColor: "0x0000ffff",
    lineWidth: "2"
};
var bool = voltmx.map.decode(polylineconfig);

Platform Availability

Available on Android only.

voltmx.map.searchRoutes

This function searches for routes between the start and destination locations.

Syntax

voltmx.map.searchRoutes(  
    searchCriteria,  
    successCallback,  
    errorCallback)

Input Parameters

| Parameter | Description | | — | — | | searchCriteria | A JSObject with set of search request configuration parameters that defines the search criteria for routes request. | | successCallback | A callback function that receives the search results when search request succeeds. The callback function must have the following syntax. function successCallback( routes ); The callback function’s routes parameter is an array with one or more routes indicating possible directions between source and destination. | | errorCallback | An optional callback function that gets called when search request fails. The callback function must have the following syntax. function errorCallback( errorCode [Number], errorMessage [String] ) The errorCode parameter indicates the category of error. This carries the one of the Map Error Codes defined in the voltmx.map namespace. The errorMessage parameter contains a detailed error message describes the reason for failure. These error messages are platform specific. |  

Example

* @ function callSearchRoutefunc * @description invokes searchRoutes API * /
  callSearchRoutefunc:function()
  {
    try{
      var searchCriteriaObj = {
        alternatives : true, 
        directionServiceUrl : "https:/ / maps.googleapis.com / maps / api / directions / json ",
        destination : {lat: MAPCONSTANTS.dest3Lat, lon: MAPCONSTANTS.dest3Lon},
        origin :  {lat: MAPCONSTANTS.originLat, lon : MAPCONSTANTS.originLon}, 
        transportMode : "driving ",
        apiKey:""
      };
      if (this.index === null || this.index === undefined) {
        alert('Please select any one destination');
      }
      switch (this.index) {
        case "VoltMX Foster City ":
          searchCriteriaObj.destination = {lat: MAPCONSTANTS.dest1Lat, lon: MAPCONSTANTS.dest1Lon};
          break;
        case "VoltMX Austin ":
          searchCriteriaObj.destination = {lat: MAPCONSTANTS.dest2Lat, lon: MAPCONSTANTS.dest2Lon};
          break;
        default :
          voltmx.print("@@@@
destination is Orlando ");
          break;
      } 

      voltmx.map.searchRoutes(searchCriteriaObj, this.searchRouteSuccesCallback, this.errorRouteSuccesCallback); 
    }catch(error){
      voltmx.print("
frmMapSearchResult Controller "+JSON.stringify(error));
    }
  },
  /**
* @function searchRouteSuccesCallback
* @description success callback for searchRoutes API
* @private  
* @param routes-> routes available in the given source and destination
			 */
  searchRouteSuccesCallback:function(routes)
  {
    try{   
      this.displySearchRoutes(routes);
    }catch(error){
      voltmx.print("
frmMapSearchResult Controller "+JSON.stringify(error));
    }
  },
  /**
* @function errorRouteSuccesCallback
* @description error callback for searchRoutes API
*/
  errorRouteSuccesCallback:function(){
    try{
      alert("
Search result failed ");
    }catch(error){
      voltmx.print("
frmMapSearchResult Controller "+JSON.stringify(error));
    }
  },
  /**

Return Values

None.

Remarks

Applications which use the apiKey in search criteria must enable the “Directions API” in Google Developer Console. Google API’s usage quota is counted against the apiKey. For activating and deactivating Google API’s, please follow the below link for detailed procedure. For an overview on searching for routes on maps, please see Map API.

Platform Availability

Available on Android and iOS.