Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    4

    [SCRIPT] calcolo distanza tra N punti su google maps

    Salve
    non so se è la sezione giusta ma sto cercando uno script che dati N punti (coordinate gps) mi calcoli la distanza e il tempo di percorrenza su strada fra di essi su google maps o simili.
    Tra due punti mi servirebbe una distanza e un tempo di percorrenza;
    Tra tre punti mi servirebbero le tre distanze e i relativi tempi;
    etc etc

    Esiste qualcosa del genere?

    Grazie

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    vedi su google mapps developers
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    4
    allora mi hanno risposto con questo link
    https://developers.google.com/maps/d...distancematrix
    però siccome non sono molto esperto col codice anzi ne so proprio poco, secondo voi va bene per risolvere il mio problema? come posso utilizzarlo?

    Ripeto... ho una lista di punti (coordinate long e lat) e ho bisogno che venga calcolata la distanza stradale tra di essi.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Credo di si, ma ricordati che le mappe di google sono uno strumento complesso e l'utilizzo richiede almeno una conoscenza minima di js e del funzionamento delle mappe stesse, non funziona le includo nella pagina e vanno.
    Valuta se è il caso di affidarsi ad un professionista vista l'inesperienza anche perché il forum difficilmente potrà farti da tutor, qualunque cosa tu decida auguri.
    Ultima modifica di cavicchiandrea; 17-04-2014 a 00:36
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    4
    ciao, grazie per il consiglio. Non è che sono totalmente inesperto però sto cercando di imparare.
    Comunque sono riuscito a ricavare uno script che funziona alla grande per fare ciò che mi serve. Ora volevo sapere se è possibile riportare i risultati che ottengo su un file excel .xls .
    Ecco il codice
    <!DOCTYPE html><html>
    <head>
    <title>Distance Matrix service</title>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <style>
    html, body {
    height: 100%;
    margin: 0;
    padding: 0;
    }


    #map-canvas {
    height: 100%;
    width: 50%;
    }
    #content-pane {
    float:right;
    width:48%;
    padding-left: 2%;
    }
    #outputDiv {
    font-size: 11px;
    }
    </style>
    <script>
    var map;
    var geocoder;
    var bounds = new google.maps.LatLngBounds();
    var markersArray = [];


    var origin1 = new google.maps.LatLng(41.89015, 12.49244)
    var origin2 = new google.maps.LatLng(2.293943, 48.858594)
    var destination1 = new google.maps.LatLng(41.89015, 12.49244);
    var destination2 = new google.maps.LatLng(2.293943, 48.858594);


    var destinationIcon = 'https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=D|FF0000|000000';
    var originIcon = 'https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=O|FFFF00|000000';


    function initialize() {
    var opts = {
    center: new google.maps.LatLng(55.53, 9.4),
    zoom: 10
    };
    map = new google.maps.Map(document.getElementById('map-canvas'), opts);
    geocoder = new google.maps.Geocoder();
    }


    function calculateDistances() {
    var service = new google.maps.DistanceMatrixService();
    service.getDistanceMatrix(
    {
    origins: [origin1, origin2],
    destinations: [destination1, destination2],
    travelMode: google.maps.TravelMode.DRIVING,
    unitSystem: google.maps.UnitSystem.METRIC,
    avoidHighways: false,
    avoidTolls: false
    }, callback);
    }


    function callback(response, status) {
    if (status != google.maps.DistanceMatrixStatus.OK) {
    alert('Error was: ' + status);
    } else {
    var origins = response.originAddresses;
    var destinations = response.destinationAddresses;
    var outputDiv = document.getElementById('outputDiv');
    outputDiv.innerHTML = '';
    deleteOverlays();


    for (var i = 0; i < origins.length; i++) {
    var results = response.rows[i].elements;
    addMarker(origins[i], false);
    for (var j = 0; j < results.length; j++) {
    addMarker(destinations[j], true);
    outputDiv.innerHTML += origins[i] + ' to ' + destinations[j]
    + ': ' + results[j].distance.text + ' in '
    + results[j].duration.text + '<br>';
    }
    }
    }
    }


    function addMarker(location, isDestination) {
    var icon;
    if (isDestination) {
    icon = destinationIcon;
    } else {
    icon = originIcon;
    }
    geocoder.geocode({'address': location}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
    bounds.extend(results[0].geometry.location);
    map.fitBounds(bounds);
    var marker = new google.maps.Marker({
    map: map,
    position: results[0].geometry.location,
    icon: icon
    });
    markersArray.push(marker);
    } else {
    alert('Geocode was not successful for the following reason: '
    + status);
    }
    });
    }


    function deleteOverlays() {
    for (var i = 0; i < markersArray.length; i++) {
    markersArray[i].setMap(null);
    }
    markersArray = [];
    }


    google.maps.event.addDomListener(window, 'load', initialize);


    </script>
    </head>
    <body>
    <div id="content-pane">
    <div id="inputs">
    <pre>
    var origin1 = new google.maps.LatLng();
    var origin2 = new google.maps.LatLng();
    var destination1 = new google.maps.LatLng();
    var destination2 = new google.maps.LatLng();
    </pre>
    <p><button type="button" onclick="calculateDistances();">Calculate
    distances</button></p>
    </div>
    <div id="outputDiv"></div>
    </div>
    <div id="map-canvas"></div>
    </body>
    </html>

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Ottimo, js non può eseguire l'esportazione e la creazione del file xls devi farlo lato server (asp, php, jsp, etc...) aggiungi un form con dei campi nascosti dove inserirai i dati da inviare al server che creerà il file xls.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    4
    ok ci provo! Grazie per la risposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.