dinamik php / mysql kullanarak googlemaps Çokluçizgileri çizim

1 Cevap php

Ben GoogleMaps API yeni duyuyorum. Ben periyodik SQL databse yerini günceller cep telefonu için küçük bir app yazdım.

Benim tarayıcıda bir googlemap bu bilgileri görüntülemek istiyorum. İdeal periyodik veritabanı yoklar ve yeni co-Kelimeler geldi varsa, çizgi eklemek istiyorum.

Bunu tanımlamanın en iyi yoludur this.

In a quest to get to there, i've started on the documents on google and been modifying them to try and acheive what I want. It doesn't work - and i don't know enough to know why. I would love some advice as to why, and any pointers towards my ultimate goal would be very much welcomed. Google Maps AJAX + MySQL/PHP Example

   <script type="text/javascript">
  //<![CDATA[

function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(47.614495, -122.341861), 13);

    GDownloadUrl("phpsqlajax_genxml.php", function(data) {
      var xml = GXml.parse(data);
      var line = [];
      var markers = xml.documentElement.getElementsByTagName("points");
        for (var i = 0; i < points.length; i++) {
            var point = points.item(i);
            var lat  = point.getAttribute("lat");
            var lng  = point.getAttribute("lng");

            var latlng = new GLatLng(lat, lng);

       line.push(latlng);
       if (point.firstChild) {
         var station = point.firstChild.nodeValue;
         var marker = createMarker(latlng, station);
         map.addOverlay(marker);
       }
     }

     var polyline = new GPolyline(line, "#ff0000", 3, 1);
     map.addOverlay(polyline);
});
}
//]]>

Benim php dosyası aşağıdaki XML oluşturuyor;

<?xml version="1.0" encoding="UTF-8" ?>
<points>
<point lng="-122.340141" lat="47.608940"/>
<point lng="-122.344391" lat="47.613590"/>
<point lng="-122.356445" lat="47.624561"/>
<point lng="-122.337654" lat="47.606365"/>
<point lng="-122.345673" lat="47.612823"/>
<point lng="-122.340363" lat="47.605961"/>
<point lng="-122.345467" lat="47.613976"/>
<point lng="-122.326584" lat="47.617214"/>
<point lng="-122.342834" lat="47.610126"/>
</points>

Ben başarıyla bu başettiğim; http://code.google.com/apis/maps/articles/phpsqlajax.html kodunu özelleştirmek denemeden önce.

Herhangi bir işaretçiler? Nerede yanlış ki?

1 Cevap

Sen doğru yolda gibi görünüyor.

Php script damgası parametreyi kabul etmelidir ve yeni noktaları bu zaman damgası sonra veritabanına eklenen edilmiş olup olmadığını kontrol etmeliyiz. Evet (eğer araç hareket olarak canlı iz göstermek istiyorsanız, bu zaman damgası sonra veya girişlerinin listesi), bu son girişi ile yanıt dönmelidir.

Istemci tarafında, son güncellemenin damgası parametresi ile normal veya long polling ya, sunucu tarafı komut dosyası için bir AJAX isteği başlatmak isteyebilirsiniz.

AJAX isteği sunucudan yeni bilgileri aldığında, sadece harita üzerinde işaretçileri hareket olacaktır. Sonra güncellenen damgası paramatresi ile yeni bir AJAX isteği başlatabilir.

Kullanarak pseudocode-imsi örneği jQuery:

var lastUpdate = '2000/01/01 00:00:00';

function autoUpdate () {
    $.ajax({
       type: "GET",
       url: "phpsqlajax_genxml.php?last_update=" + lastUpdate,
       dataType: 'xml',
       success: function(xmlData) {

          // 1. Check if the xmlData is empty. If not we received 
          //    some fresh data.
          // 2. Update lastUpdate from the xmlData with the timestamp from 
          //    the server. Don't use JavaScript to update the timestamp, 
          //    because the time on the client and on the server will 
          //    never be exactly in sync.
          // 3. Move the markers on Google Map.

          // Relaunch the autoUpdate() function in 5 seconds.
          setTimeout(autoUpdate, 5000);
       }
    });
}