Waypoint in Map App

daveBuc

Nuovo Utente
6 Mar 2020
2
0
1
Buona pomeriggio a tutti,

sto cercando di scrivere una webApp inerente ad una mappa. L'idea principale che mi serve sviluppare è quella di andare ad evidenziare sul percorso una serie di waypoints, magari equidistanti. Sto cercando in tutti i modi di vedere se la cose è fattibile con le API di tomtom, visto che mi è stato richiesto di usare queste e non quelle di google, ma non trovo un modo per calcolare i waypoints dopo aver impostato il tragitto. L'unico modo in cui sono riuscito a farlo è stato aggiungendoli manualmente.

Vi allego la parte di codice che ho scritto:

HTML:
<!DOCTYPE html>
<html class='use-all-space'>

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta charset='UTF-8'>
    <title>Maps SDK for Web - Routing from my location</title>
    <meta name='viewport' content='width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no' />
    <link rel='stylesheet' type='text/css' href='sdk/map.css' />
    <link rel='stylesheet' type='text/css' href='elements.css' />
    <script type='text/javascript' src='js/form.js'></script>
    <script type='text/javascript' src='sdk/tomtom.min.js'></script>
    <style>
        label {
            display: flex;
            align-items: center;
            margin: 2px;
        }

        select {
            flex: auto;
            margin-left: 10px;
        }
    </style>
</head>

<body class='use-all-space'>
    <div id='map' class='use-all-space'></div>
    <script>
        // Define your product name and version
        tomtom.setProductInfo('<my_project>', '<my_project_version>');
        // Setting TomTom keys
        tomtom.routingKey('<myKey>');
        tomtom.searchKey('<myKey>');

        // Creating maps
        var map = tomtom.L.map('map', {
            key: '<myKey>',
        // key: '${api.key}',
            source: 'vector',
            basePath: '/sdk'
        });
        map.zoomControl.setPosition('topright');

        var unitSelector = tomtom.unitSelector.getHtmlElement(tomtom.globalUnitService);
        var languageSelector = tomtom.languageSelector.getHtmlElement(tomtom.globalLocaleService, 'search');

        var unitRow = document.createElement('div');
        var unitLabel = document.createElement('label');
        unitLabel.innerHTML = 'Unit of measurement';
        unitLabel.appendChild(unitSelector);
        unitRow.appendChild(unitLabel);
        unitRow.className = 'input-container';

        var langRow = document.createElement('div');
        var langLabel = document.createElement('label');
        langLabel.innerHTML = 'Search language';
        langLabel.appendChild(languageSelector);
        langRow.appendChild(langLabel);
        langRow.className = 'input-container';

        tomtom.controlPanel({
            position: 'bottomright',
            title: 'Settings',
            collapsed: true
        })
            .addTo(map)
            .addContent(unitRow)
            .addContent(langRow);

        // Adding route-inputs widget
        var routeInputs = tomtom.routeInputs({
            enableSearchBoxesModifcation: true
        }).addTo(map);

        // Adding route-on-map widget
        var routeOnMapView = tomtom.routeOnMap().addTo(map);

        // Connecting route-inputs with route-on-map widget
        routeInputs.on(routeInputs.Events.LocationsFound, function(eventObject) {
            routeOnMapView.draw(eventObject.points);
        });
        routeInputs.on(routeInputs.Events.LocationsCleared, function(eventObject) {
            routeOnMapView.draw(eventObject.points);
        });

        // Show notification on route-inputs widget when the user location cannot be detected
        routeInputs.on(routeInputs.Events.LocationError, function() {
            routeInputs.showLocationNotFoundMessageBox();
        });
    </script>
</body>

</html>
In questo modo, come vi dicevo riesco ad inserire manualmente i waypoints ma vorrei che li calcolasse automaticamente quando inserisco partenza e destinazione, e che mi comparissero sulla mappa. Ciò poi mi servirebbe per calcolare alcune cose, ma è un discorso secondario.

Spero che qualcuno possa aiutarmi.

Vi ringrazio