Menu
Close

Tracking With Curved Line

Sample Implementation

 

  <html>
  <head>
    <title>Tracking With Curved Line</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="Tracking With Curved Line">

        <script src="https://sdk.mappls.com/map/sdk/web?v=3.0&access_token=Token&callback=initMap1"></script>
          <script src="https://sdk.mappls.com/map/sdk/plugins?access_token=Token&v=3.0"></script>
          <style>
        body {
            margin: 0;
        }

        #map {
            width: 100%;
            height: 100vh;
            margin: 0;
            padding: 0;
        }
    </style>
    </head>

    <body>
        <div id="map"></div>
                <script>
            var map, trackingCallBackData;

            function initMap1() {
                map = new mappls.Map('map', {
                    center: [28.62988695137534, 77.4224575062193],
                    zoom: 12,
                    clickableIcons: false
                });

                map.addListener('load', function() {

                    window.mappls.addControl({
                        map: map,
                        html: `<div id="container_tracking">
                                <button onclick="handleUserCall([77.26757150555511, 28.551569415823124])">Point 1</button>
                                <button onclick="handleUserCall([77.26486259000762, 28.553441753212752])">Point 2</button>
                                <button onclick="handleUserCall([77.2587714362221, 28.548644369293683])">Point 3</button>
                                <button onclick="handleUserCall([77.25672406280427, 28.548796724182054])">Point 4</button>
                                <button onclick="handleUserCall([77.26045249417677, 28.55250916655352])">Point 5</button>
                                <br/><br/>
                                </div>
                                <button id="rc" style="display: none;" onclick="recenter();">Recenter</button>`,
                        position: "top-left",
                    });


                    var tracking_option = {
                        map: map,
                        profile: "biking",
                        start: {
                            geoposition: "28.550947419414012,77.26890561043258"
                        },
                        end: {
                            geoposition: "28.55373960502866,77.25988209737588"
                        },
                        fitBounds: true,
                        fitboundsOptions: {
                            padding: 100
                        },
                        connector: true,
                        strokeWidth: 4,
                        routeColor: "blue",
                        connectorRouteColor: "gray",
                        connectorRouteDash: [2, 2],
                        start_icon: false,
                        strokeOpacity: 0,
                        connectorVisible: false,
                        connectorWidth: 2,
                        curveLineColor: "#333",
                        curveLineOpacity: 1,
                        curveDasharray: [2, 2],
                        curveLineStrokeWeight: 2,
                        curveLine: true,
                        curveLineFitbounds: true,
                    };
                    tracking_plugin = mappls.tracking(tracking_option, function(data) {
                        console.log(data);
                        trackingCallBackData = data;
                    });
                });

                map.on("click", function(e) {
                    var user = [e.lngLat.lng, e.lngLat.lat];
                });

                map.addListener("dragend", function() {
                    trackingCallBackData.settrackfit(false);
                    document.getElementById("rc").style.display = "block";
                });
            }

            function recenter() {
                trackingCallBackData.settrackfit(true);
                document.getElementById("rc").style.display = "none";
            }

            function handleUserCall(user) {
                if (user) {
                    trackingCallBackData.removeCurveLine();
                    trackingCallBackData.setLineVisible(true);
                    trackingCallBackData.trackingCall({
                        location: user,
                        etaRefresh: false,
                        heading: true,
                        buffer: 80,
                        delay: 3000,
                        latentViz: true,
                        smoothFitBounds: false,
                        fitBounds: true,
                        popupOptions: {
                            openPopup: false
                        },
                        fitboundsOptions: {
                            padding: 120,
                        },
                        callback: function(data) {
                            console.log(data);
                        },
                    });
                }
            }
        </script>
        </body>
  </html>

Call at Mappls
Request Call Back

Personalisation SDK, by Mappls, is India's first O2O engagement tool that can 3X your customer engagement, retention and conversion.

There's so much that Mappls MapmyIndia can do for your enterprise or individual requirements. Explore our website to learn more or request a callback/email if you'd like us to connect with you.

or