Mapy google, obliczanie czasu

0

Witam, znalazłem w api google cos czego szukalem.. ale nie daje sobie rady z java, bo jestem w niej zielony, nie znam sie na tym szczerze mowiac. A potrzebuje z kodu wyłuskać jedynie CZAS, miedzy dwoma miejscami.
Nie potrzebna mi jest mapa, ani markery pokazywane na niej... tylko skąd dokąd i CZAS!
stronka o api google: http://code.google.com/intl/p[...]services.html#distance_matrix

A ponizej kod z przykladu.
Gdy sam usuwam jakieś rzeczy to wtedy nic mi się nie uruchamia, gdy pokasowałem tą tablice dwuwymiarowa to tez mi się nic nie wyświetlało po naciśnięciu.
potrzebuje tylko jednego orgin i destinations. przykładowo var origin = "Lodz, Poland";
var destinations = "Warszawa, Poland";

później będę myślał jak wyłuskać z Javy ten czas jako zmienną do php. ale to później będę się o to martwił.
Czy ktoś może wie co z tym zrobić?

<html>
  <head>
    <title>Google Maps API v3 Example: Distance Matrix</title>
    <script src="//maps.googleapis.com/maps/api/js?sensor=false"></script>
    </script>

    <style type="text/css">
      body {
        margin: 20px;
        font-family: courier, sans-serif;
        font-size: 12px;
      }
      #map {
        height: 480px;
        width: 640px;
        border: solid thin #333;
        margin-top: 20px;
      }
    </style>

    <script>

      var map;
      var geocoder;
      var bounds = new google.maps.LatLngBounds();
      var markersArray = [];

      var origin1 = new google.maps.LatLng(55.930385, -3.118425);
      var origin2 = "Lodz, Poland";
      var destinationA = "Warszawa, Poland";
      var destinationB = new google.maps.LatLng(50.087692, 14.421150);

      var destinationIcon = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=D|FF0000|000000";
      var originIcon = "http://chart.apis.google.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: 100,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map'), opts);
        geocoder = new google.maps.Geocoder();
      }

      function calculateDistances() {
        var service = new google.maps.DistanceMatrixService();
        service.getDistanceMatrix(
          {
            origins: [origin1, origin2],
            destinations: [destinationA, destinationB],
            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() {
        if (markersArray) {
          for (i in markersArray) {
            markersArray[i].setMap(null);
          }
          markersArray.length = 0;
        }
      }

    </script>
  </head>
  <body onload="initialize()">
    <div id="inputs">
      <pre class="prettyprint">
var origin1 = new google.maps.LatLng(55.930385, -3.118425);
var origin2 = "Greenwich, England";
var destinationA = "Stockholm, Sweden";
var destinationB = new google.maps.LatLng(50.087692, 14.421150);
      </pre>
      <p><button type="button" onclick="calculateDistances();">Calculate
        distances</button></p>
    </div>
    <div id="outputDiv"></div>
    <div id="map"></div>
  </body>
</html>

Chyba wszyscy pracują:) W każdym razie coś porobiłem.
A wiec już mam punkt startowy, docelowy i pokazuje mi wynik.

Teraz bym chciał zrobić coś takiego ze w miejsce var destinationA = "Piotrkowska 250, Lodz, Poland"; wpisywało się dynamicznie coś ze strony. Żeby to było od php jakaś zmienna.. a wynikiem tez z zmiennej php był CZAS.
Ale nie wiem jak wyłuskać to.
Czy ktoś mi pomoże?

<html>
  <head>
    <title>Google Maps API v3 Example: Distance Matrix</title>
    <script src="//maps.googleapis.com/maps/api/js?sensor=false"></script>
    </script>

    <style type="text/css">
      body {
        margin: 20px;
        font-family: courier, sans-serif;
        font-size: 12px;
      }
    </style>

    <script>

      var origin1 = "Piotrkowska 60, Lodz, Poland";
      var destinationA = "Piotrkowska 250, Lodz, Poland";

      var destinationIcon = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=D|FF0000|000000";
      var originIcon = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=O|FFFF00|000000";

      function calculateDistances() {
        var service = new google.maps.DistanceMatrixService();
        service.getDistanceMatrix(
          {
            origins: [origin1],
            destinations: [destinationA],
            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 = '';

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

    </script>
  </head>
  <body onload="initialize()">
    <div id="inputs">
      <pre class="prettyprint">
var origin1 = "Piotrkowska 60, Lodz, Poland";
var destinationA = "Piotrkowska 250, Lodz, Poland";
      </pre>
      <p><button type="button" onclick="calculateDistances();">Calculate
        distances</button></p>
    </div>
    <div id="outputDiv"></div>
    <div id="map"></div>
  </body>
</html>
0

var destinationA = "<? echo $zmienna; ?>";

1

Jesteś na tyle zielony, że nawet nie poznałeś, że to nie jest Java.

0

Czyli cos takiego mam zrobic:

var ulica= "<? echo $_GET['uliczka']; ?>";
var origin1 = ulica+', Lodz, Poland';
var destinationA = "Piotrkowska 250, Lodz, Poland";

a w body to:

<body onload="initialize()">
    <div id="inputs">
      <pre class="prettyprint">
var origin1 = "Piotrkowska 60, Lodz, Poland";
var destinationA = "Piotrkowska 250, Lodz, Poland";
      </pre>
<form id="form1" name="form1" action="" method="get"/>
<p>Address :<input type="text" name="uliczka" /></p>
<p><button value="Wprowadz" type="button" onclick="calculateDistances();">Calculate distances</button></p>
<p id="outputDiv"></p>
</form> 
</div>
 </body>

Bo cos nie dziala mi..

0

nie tak. jak masz ten skrypt javascript w pliku xxxx.php w którym w jednej ze zmiennej masz:
var costam = "adres";

to mozesz powyzsza linie wygenerowac z poziomu php:
np:
<?php echo "var costam = \"adres\";"; ?>
lub jeszcze krócej:

var costam = "<?php echo "adres"; ?>";

chodzi o to, żeby skrypt php znajdował się wewnątrz skryptu javascript

0

Dzięki krwq. Ale jeszcze nie zobaczyłem co i jak.. ale zaraz będę sprawdzał.
A reszta nie wiem po co pisze.. skoro i tak nie umie pomoc nawet. To takie straszne ze napisałem w Java? Potrzebuje jedynie pomocy a nie zbędnych "chamskich" komentarzy.
Wiem ze pewnie Wy jesteście wyjadaczami programowania itp.. no ja niestety nie.. i napisałem na początku, wystarczyło przeczytać a nie nabijać posty.

0
SlubPoSexe napisał(a)

To takie straszne ze napisałem w Java?
To tak jakbyś o problemach z delphi pisał w dziale c/c++. Sam sobie pomyśl, czy to "straszne".

edit:

Zwykle nie wchodzę w dział webmastering na tym forum... ale kiedy to robię, to tylko dlatego, że jakiś temat, który czytałem w dziale Java w międzyczasie został tu przeniesiony..

0

Dalej widzę nabijasz posty. Dla Ciebie może to straszne dla mnie nie, ja potrzebuje tylko pomocy nic więcej. A Ty mi się będziesz mądrować ale nie w tym co potrzeba. Jest moderator, przeniósł temat i po krzyku.

krwq zrobiłem tak jak mówiłeś, fajnie, wszystko działa dzięki.

<?php
$uliczka = "Piotrkowska 78";
$koniec_trasy = "Piotrkowska 260";
?> 

      var ulica="<?php echo $uliczka ?>";
      var koniec="<?php echo $koniec_trasy ?>";
      var origin1 = ulica+', Lodz, Poland';
      var destinationA = koniec+', Lodz, Poland';

I jeszcze jedno, chciałbym wyłuskać czas z tego wszystkiego tez do php i mieć ją jako zmienna.
Z tego co widzę to za to odpowiada:
results[j].duration.text
mam sobie zrobić zmienna var czas=results[j].duration.text;

ale jak ją przechwycić do php? da sie tak w ogóle?

0

No właśnie czytam ale nie mogę się z tym połapać za bardzo..
zależy mi żeby później czas (drogi pomiędzy dwoma ulicami ) z tego javascript wysłać na maila czy np do sms komuś.
wiec musi mi wyjść zmienna..
cos czytalem o ukrytym inpucie.. ze wtedy da sie to jakos zrobic, tylko jak?

0

pobierz jQuery, następnie zaraz po otrzymaniu danych ze strony odeślij je do serwera przy pomocy funkcji $.post
poczytaj na googlach pod hasłem:
jquery post

w php zrób skrypt (inny lub w tym samym pliku co poprzedni), który będzie przetwarzał odebrane dane

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0