Skip to content

Latest commit

 

History

History
235 lines (162 loc) · 8.73 KB

Driving-Range-Plugin.md

File metadata and controls

235 lines (162 loc) · 8.73 KB

Mappls Driving Range Plugin for Android

The Mappls Driving Range Plugin allows you to plot driving range area to drive based on time or distance on Mappls vector map component.

The plugin offers the following basic functionalities:

  • Get and Plot driving range as polygon on map.
  • Update driving range on map.
  • Clear already plotted driving range on map.

This can be done by following simple steps.

  • Add below dependency in your app-level build.gradle
implementation 'com.mappls.sdk:driving-range-plugin:1.1.0'

MapplsDrivingRangePlugin is the main class which is required to be initialized to use different functionalities of plugin.

It allows you to plot driving range area based on time or distance.

Java

MapplsDrivingRangePlugin mapplsDrivingRangePlugin = new MapplsDrivingRangePlugin(mapView, mapplsMap);

Kotlin

var mapplsDrivingRangePlugin = MapplsDrivingRangePlugin(mapView, mapplsMap)

A function drawDrivingRange of instance of MapplsDrivingRangePlugin will be used to get driving range and plot on map. This function will accept an instance of MapplsDrivingRangeOption as request to get driving range.

Below is code for reference:

Java

MapplsDrivingRangeContour rangeContour = MapplsDrivingRangeContour.builder()  
        .value(50)  
        .color("ff0000")  
        .build();  
List<MapplsDrivingRangeContour> list = new ArrayList<>();  
list.add(rangeContour);  
MapplsDrivingRangeOption option = MapplsDrivingRangeOption.builder()  
        .location(location)  
        .rangeTypeInfo(  
                MapplsDrivingRangeTypeInfo.builder()  
                        .rangeType(DrivingRangeCriteria.RANGE_TYPE_TIME)  
                        .contours(list)  
                        .build()  
        ).build(); 
mapplsDrivingRangePlugin.drawDrivingRange(option)
           
           //Or with callback
mapplsDrivingRangePlugin.drawDrivingRange(option, new IDrivingRangeListener() {  
    @Override  
  public void onSuccess() {  
          //Success
    }  
  
    @Override  
  public void onFailure(int code, @NonNull String message) {  
		  // Failure
    }  
});

Kotlin

val range = MapplsDrivingRangeContour.builder()  
    .value(50)  
    .color("ff0000")  
    .build();  
val option = MapplsDrivingRangeOption.builder()  
    .location(location)  
    .rangeTypeInfo(  
        MapplsDrivingRangeTypeInfo.builder()  
            .rangeType(DrivingRangeCriteria.RANGE_TYPE_TIME)  
            .contours(listOf(range))  
            .build()  
    ).build()
mapplsDrivingRangePlugin?.drawDrivingRange(option)

                 //OR with callback
mapplsDrivingRangePlugin?.drawDrivingRange(option, object :  
    IDrivingRangeListener {  
    override fun onSuccess() {  
        Toast.makeText(this@DrivingRangeActivity, "Success", Toast.LENGTH_SHORT).show()  
    }  
  
    override fun onFailure(code: Int, message: String) {  
        Toast.makeText(this@DrivingRangeActivity, message, Toast.LENGTH_SHORT).show()  
    }  
})

MapplsDrivingRangeOption

It is a structure that specifies the criteria for request for getting polygons as range to drive based on time or distance.

It contains following properties.

  • name[String]: It is used for name of the driving range request. If name is specified, the name is returned with the response.

  • location[Point](Mandatory): It is center point for range area that will surrounds the roads which can be reached from this point in specified time range(s).

  • drivingProfile[String]: Driving profile for routing engine. Default value is auto.

  • speedTypeInfo[MapplsDrivingRangeSpeed]: It is used to calculate the polygon. Default value is MapplsDrivingRangeSpeed.optimal()'

  • rangeTypeInfo[MapplsDrivingRangeTypeInfo](Mandatory):- It is used to specify the type of range which is used to calculate the polygon.

  • isForPolygons[Boolean]: It is used to determine whether to return geojson polygons or linestrings. The default is true.

  • showLocations[Boolean]: It indicating whether the input locations should be returned as MultiPoint features. The default is false. It returns

    • one point feature for the exact input coordinates
    • one point feature for the coordinates of the network node it snapped to.
  • denoise[Float]: A floating point value from 0 to 1 (default of 1) which will be used to remove smaller contours. Default value is 0.5.

  • generalize[Float]: A floating point value in meters used as the tolerance for Douglas-Peucker generalization. Default value is 1.2

MapplsDrivingRangeTypeInfo

It contains following properties.

  • rangeType[String]: It specify the type of range which is used to calculate the polygon. Possible values are:

    • DrivingRangeCriteria.RANGE_TYPE_TIME (Default): It means it takes time in min.
    • DrivingRangeCriteria.RANGE_TYPE_DISTANCE: It means it takes distance in Km.
  • contours[List<MapplsDrivingRangeContour>]: Each contour object is combination of value and colorHexString.

MapplsDrivingRangeContour

It contains following properties.

  • value(Integer): value taken as time or distance defined in instance of MapplsDrivingRangeTypeInfo.

    • If type of range is time in minutes(default = 15, maximum = 80)
    • If type of range is distance in kilometers(default = 1, maximum = 80)
  • color[String]: It specify the color for the output of the contour. Pass a hex value, such as ff0000 for red.

MapplsDrivingRangeSpeed

  • For optimal Speed type.
MapplsDrivingRangeSpeed.optimal();
  • For predictive speed type with current timestamp
MapplsDrivingRangeSpeed.predictiveSpeedFromCurrentTime();
  • For predictive speed type with custom timestamp:
MapplsDrivingRangeSpeed.predictiveSpeedFromCustomTime(time)

We have provided some features with the plugin which will help to further enhance the experience.

To fit the bounds of the map for plotted driving range, user has to set camera.

Java

mapplsDrivingRangePlugin.isSetMapBoundForDrivingRange(false);

Kotlin

mapplsDrivingRangePlugin?.isSetMapBoundForDrivingRange(false)

On setting it true, plugin will set camera to fit bound. It's default value is true.

Plotted driving range on Map can be removed by calling function clearDrivingRangeFromMap.

Refer to the code below:

Java

mapplsDrivingRangePlugin.clearDrivingRangeFromMap();

Kotlin

mapplsDrivingRangePlugin?.clearDrivingRangeFromMap()




For any queries and support, please contact:

Email us at apisupport@mappls.com

Support Need support? contact us!





@ Copyright 2024 CE Info Systems Ltd. All Rights Reserved.