在php中定期获取纬度和经度,并使用更新的纬度和经度值更新标记位置

时间:2015-09-15 09:13:25

标签: javascript php google-maps google-maps-api-3

我已经获取了php中所有gps设备的纬度和经度。我想要的是在PHP中,这个纬度和经度每30秒更新一次。更新值后,我想根据这些值更新标记位置。我为此烦恼了很多,但每次我进入ajax,javascript和php时,事情都让我感到困惑。我的代码是: -

$returned_content=get_data($value->URL."&sDate=".$sdate."&eDate=".$edate);
//url gives the latitude and longitude

$xmlObj = simplexml_load_string($returned_content);
$json=$xmlObj->GetGPSData;
error_log($json);
$json_decode=json_decode($json);

foreach($json_decode as $row){
    $lat_d= $row->Latitude;
    echo("\n");
    $long_d= $row->Longitude;
}
<html>
    <head>
<?php
     //   <meta http-equiv="refresh" content="40" />
?>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api
    /js?sensor=false"></script>
<script type="text/javascript">
    var map;
    function initialize() {
        xar latlng = new google.maps.LatLng(<?php echo $lat_d; ?>, <?php echo $long_d; ?>);

        var myOptions = {
                    zoom: 16,
                    center: latlng,
                    panControl: true,
                    zoomControl: true,
                    scaleControl: true,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
        }


        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
<?php
    echo "addMarker(new google.maps.LatLng(".$lat_d.", ".$long_d."), map);";
?>

    }


    var icon = new google.maps.MarkerImage(
        "http://4vector.com/i/free-vector-yellow-bus-clip-art_109340_Yellow_Bus_clip_art_hight.png",
        null, //size is determined at RUNTIME
        null, // origin is 0,0
        null, // anchor is bottom center of the scaled image

        new google.maps.Size(62,22)
    );

    function addMarker(latLng, map) {
        var marker = new google.maps.Marker({
                    position: latLng,
                    map: map,
                    icon: icon,
                    draggable: true, // enables drag & drop
                    animation: google.maps.Animation.DROP
        });
        return marker;
    }
    </script>
    </head>
        <body onload="initialize()">
            <div style="float:left; position:relative; width:550px; border:0px #000 solid;">
                <div id="map_canvas" style="width:1421px;height:700px;border:solid black 1px;"></div>
            </div>
        </body>
    </html>

我将非常感谢能够帮助我的人。因为它现在超越了我的头脑

1 个答案:

答案 0 :(得分:0)

我认为你不能在javascript中使用php代码,就像你在html中使用它一样。

相反,尝试使用(JQuery)AJAX调用来访问外部php脚本,并从那里获取结果。

示例:

var myLongLat = 0;
$.post('getLongLat.php', { id: 1}, function(result) { 
   myLongLat = result;
});