BeMapAPI
BeMap 4.1.0
API reference: POST /geofencing/1.0

Fences on map

REST API, Service version 1.0.0

Geo-fencing service#

A geo-fence is a virtual perimeter for a real-world geographic area. A geo-fence could be dynamically generated-as in a radius around a point location, or a geo-fence can be a predefined set of boundaries (such as school zones or neighborhood boundaries).

For more details: Wikipedia

Summary#

  1. Request
    1. Mandatory parameters
    2. Optional parameters
  2. Response
    1. Details of fields
    2. Response samples

Request#

The request must be sent with the HTTP method POST and the HTTP header Content-Type set to application/json.

Sample: URI: /bgis/service/geofencing/1.0

POST data:

javascript
{
    "fenceShapes": [
        {
            "id": "1",
            "type": "CIRCLE",
            "center": {
                "lon": 7.42806,
                "lat": 43.75272
            },
            "radius": 3000
        }
    ],
    "positionType": "POLYGON",
    "positions": [
        {
            "lon": 7.41888,
            "lat": 43.73252
        },
        {
            "lon": 7.41806,
            "lat": 43.73272
        },
        {
            "lon": 7.41537,
            "lat": 43.73169
        },
        {
            "lon": 7.41516,
            "lat": 43.73184
        },
        {
            "lon": 7.41461,
            "lat": 43.73224
        }
    ]
}

All coordinates are defined by longitude and latitude, see the coordinate system glossary for more details.

Parameters#

  • fenceShapesGeoFenceShp[]required

    Define a fence shape to perform a intersection test between the route and fence.

    GeoFenceShp fields
    • centerCoordinaterequired

      Center of circle fence.

      Coordinate fields
      • lonnumber (double)required

        Longitude in degrees decimal (WGS84).

        Also accepted as longitude.

      • latnumber (double)required

        Latitude in degrees decimal (WGS84).

        Also accepted as latitude.

    • radiusinteger (int64)required

      Radius of circle fence.

    • verticesCoordinate[]required

      Vertices of polygon fence.

      Coordinate fields
      • lonnumber (double)required

        Longitude in degrees decimal (WGS84).

        Also accepted as longitude.

      • latnumber (double)required

        Latitude in degrees decimal (WGS84).

        Also accepted as latitude.

    • idinteger (int64)

      The fence id. If value is negative the server will set it with an auto-incrementing number.

    • typeenum

      Define the type of geometric shape of fence, like CIRCLE or POLYGON.

      2 accepted values
      CIRCLECircle.
      POLYGONPolygon.
  • positionsGeofencingPos[]required

    The coordinates will be compared with the fences.

    GeofencingPos fields
    • lonnumber (double)required

      Longitude in degrees decimal (WGS84).

      Also accepted as longitude.

    • latnumber (double)required

      Latitude in degrees decimal (WGS84).

      Also accepted as latitude.

    • radiusinteger (int64)

      Radius in meters.

  • geoserverstring

    Geoserver name.

  • swidxinteger (int32)deprecated

    Switch index.

  • positionTypeenum

    Define type of positions parameter used to perform a comparison between fence shapes and coordinates.

    3 accepted values
    CIRCLEDefine type of xy parameter as circle to perform a comparison between fence shapes and a circle.
    POLYLINEDefine the interpretation of coordinates of xy parameter to perform a comparison between fence shapes and a polyline.
    POLYGONDefine the interpretation of coordinates of xy parameter to perform a comparison between fence shapes and a polygon.
  • optionsenum[]

    Comma-separated list of one or more geo-fencing options.

    1 accepted value
    SEARCHEnable to search the fences with coordinate, in this case the parameter positions can be use the radius.

Response#

Return a list in same order of xy parameters (list of coordinates) with state INSIDE, OUTSIDE or INTERSECT.

Result of compare test#

  • positionStates: The status of result. Available values below.
ValuesIllustrationDescription
INSIDEinsideDefines if the tested coordinate is in fence.
OUTSIDEoutsideDefines if the tested coordinate is out of fence.
INTERSECTintersectPosition is not completely inside or outside but the shapes are intersected.

Details of fields#

  • fenceResultsGeofencingRes[]

    Return a list in same order of xy parameters (list of coordinates) with state INSIDE, OUTSIDE or INTERSECT.

    GeofencingRes fields
    • idinteger (int64)

      Unique ID of fence.

    • typeenum

      Type of geometry.

      2 accepted values
      CIRCLECircle.
      POLYGONPolygon.
    • fenceShapeGeoFenceShp

      Shape of fence used to perform the test.

      GeoFenceShp fields
      • centerCoordinaterequired

        Center of circle fence.

        Coordinate fields
        • lonnumber (double)required

          Longitude in degrees decimal (WGS84).

          Also accepted as longitude.

        • latnumber (double)required

          Latitude in degrees decimal (WGS84).

          Also accepted as latitude.

      • radiusinteger (int64)required

        Radius of circle fence.

      • verticesCoordinate[]required

        Vertices of polygon fence.

        Coordinate fields
        • lonnumber (double)required

          Longitude in degrees decimal (WGS84).

          Also accepted as longitude.

        • latnumber (double)required

          Latitude in degrees decimal (WGS84).

          Also accepted as latitude.

      • idinteger (int64)

        The fence id. If value is negative the server will set it with an auto-incrementing number.

      • typeenum

        Define the type of geometric shape of fence, like CIRCLE or POLYGON.

        2 accepted values
        CIRCLECircle.
        POLYGONPolygon.
    • positionStatesenum[]

      Defines position state of tested coordinate on the fence geometry.

      5 accepted values
      INWARDDefines if the tested coordinate is an inward intersection.
      INSIDEDefines if the tested coordinate is in fence.
      OUTWARDDefines if the tested coordinate is an outward intersection.
      OUTSIDEDefines if the tested coordinate is out of fence.
      INTERSECTPosition is not completely inside or outside but the shapes are intersected.

Response samples#

JSON Sample:

javascript
{
    "fenceResults": [
        {
            "id": 1,
            "type": "CIRCLE",
            "positionStates": [
                "OUTSIDE"
            ]
        }
    ]
}