วาดรูปหลายเหลี่ยมที่เติบโตเมื่อรถเคลื่อนที่โดยรับข้อมูลจาก MySql และ PHP ใน Google API


9

ฉันต้องการที่จะแสดงรูปหลายเหลี่ยมบน google แผนที่ในขณะที่รถเคลื่อนไหวพร้อมภาพเคลื่อนไหว (เช่นในเว็บไซต์นี้: http://econym.org.uk/gmap/example_cartrip2.htm ) โดยใช้ข้อมูลจาก MySQL และ PHP การที่ฉันอ้างรหัสจาก Google API กวดวิชาPolyline ฉันได้รับข้อมูลนี้จาก SQL ของฉันซึ่งเป็นดังนี้: .html

function load() {
    var point;
                    var flightPlanCoordinates=new Array();
            var map = new google.maps.Map(document.getElementById("map"), {
                center: new google.maps.LatLng(18.33, 73.55),
                zoom: 7,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                mapTypeControl: false,
                mapTypeControlOptions: {
                style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
                 },
                navigationControl: true,
                navigationControlOptions: {
                    style: google.maps.NavigationControlStyle.SMALL
                }
            });

            downloadUrl("xmltry.php", function(data) {
        var xml = data.responseXML;

        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
            point = new google.maps.LatLng(
              parseFloat(markers[i].getAttribute("lat")),
              parseFloat(markers[i].getAttribute("lon")));
            flightPlanCoordinates[i]=point;
          }
          var flightPath = new google.maps.Polyline({
    path: flightPlanCoordinates,
    strokeColor: "#FF0000",
    strokeOpacity: 1.0,
    strokeWeight: 2
  });

  flightPath.setMap(map);

      });

        }

        function downloadUrl(url, callback) {
      var request = window.ActiveXObject ?
          new ActiveXObject('Microsoft.XMLHTTP') :
          new XMLHttpRequest;

      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          request.onreadystatechange = doNothing;
          callback(request, request.status);
        }
      };

      request.open('GET', url, true);
      request.send(null);
    }
    function doNothing() {}

ไฟล์. php:

<?php
//require("phpsqlajax_dbinfo.php");
include 'common_db.inc';
// Start XML file, create parent node

$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node); 

// Opens a connection to a MySQL server

$connection=mysql_connect ("$dbserver", "$dbuser", "$dbpass");
if (!$connection) {  die('Not connected : ' . mysql_error());} 

// Set the active MySQL database

$db_selected = mysql_select_db($dbname, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
} 

// Select all the rows in the markers table

$query = "SELECT  `lat`, `lon` FROM current_location Where Device_ID='HGS1005'";
$result = mysql_query($query);
if (!$result) {  
  die('Invalid query: ' . mysql_error());
} 

header("Content-type: text/xml"); 

// Iterate through the rows, adding XML nodes for each

while ($row = @mysql_fetch_assoc($result)){  
  // ADD TO XML DOCUMENT NODE  
  $node = $dom->createElement("marker");  
  $newnode = $parnode->appendChild($node);  
  $newnode->setAttribute("lat", $row['lat']);  
  $newnode->setAttribute("lon", $row['lon']);  
  } 

echo $dom->saveXML();

?>

แต่ตอนนี้ฉันต้องการแสดงรูปหลายเหลี่ยมพร้อมภาพเคลื่อนไหวตามที่แสดงในไซต์อ้างอิงที่1 ผู้ใดสามารถแนะนำฉันอ้างอิงบางอย่างหรือช่วยฉันด้วยเหมือนกัน ฉันได้รับผลลัพธ์ที่ถูกต้อง แต่ต้องการภาพเคลื่อนไหวในhttp://econym.org.uk/gmap/example_cartrip2.htm ป้อนคำอธิบายรูปภาพที่นี่ หวังว่าคราวนี้ชื่อของฉันและส่วนคำอธิบายจะเข้าใจ

คำตอบ:


2

จากเอกสารMaps Javascript API สำหรับ Polyline (จดบันทึกpathคุณสมบัติ) :

ลำดับที่เรียงลำดับของพิกัดของ Polyline เส้นทางนี้อาจถูกระบุโดยใช้อาร์เรย์ LatLngs แบบง่าย ๆ หรือ MVCArray ของ LatLngs โปรดทราบว่าถ้าคุณผ่านอาร์เรย์ที่เรียบง่ายก็จะถูกแปลงไปเป็น MVCArray ใส่หรือถอด LatLngs ใน MVCArray โดยอัตโนมัติจะปรับปรุงเส้นบนแผนที่

รู้ว่าฉันจะลองแบบนี้:

// I assume you've got your GPS signal pumping updates to your client.
// Insert a new GPS point into your Polyline's point array.
function OnGpsPulse(newLat, newLon)
{
  // Insert a new point at the end of the LatLng Array.
  pointIndex = flightPlanCoordinates.length;      
  flightPlanCoordinates[pointIndex]=new google.maps.LatLng(newLat, newLon);

  // And the line should automatically update in the map.
}

หลังจากนั้นชีพจร GPS แต่ละอันควรส่งเหตุการณ์ที่คุณอาจต้องการ / ต้องการจัดการในสองสถานที่ ก่อนอื่นถ้าคุณต้องการเก็บตำแหน่งของยานพาหนะไปเรื่อย ๆ คุณจะต้องรวบรวมพวกเขาไว้ที่ฝั่งเซิร์ฟเวอร์ อย่างไรก็ตามหากคุณต้องการให้ยานพาหนะวาดเส้นขณะเดินทางคุณสามารถใช้ฟังก์ชันนั้นในไคลเอนต์ได้


ขอบคุณสำหรับการตอบกลับ แต่ฉันจะมีแหล่งข้อมูลในฐานข้อมูลของฉัน ieMySQL ฉันไม่ต้องการการติดตามแบบสด แต่ประวัติที่ยานพาหนะของฉันเคลื่อนไปเพราะฉันต้องการแสดงภาพเคลื่อนไหวของแทร็กดังตัวอย่าง ( econym.org.uk/gmap/example_cartrip2.htm ) ฉันต้องการเพิ่มภาพเคลื่อนไหวไปยังข้อมูลที่เก็บไว้ ตำแหน่งที่ภาพรถ (เช่น png) จะเคลื่อนไหวและแทร็กของยานพาหนะจะวาดเมื่อภาพนี้เลื่อนตามลิงก์แรก
Pari
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.