如何在google地图中显示标记从mysql php检索数据
我在车辆跟踪系统工作,这里我把GPS数据存储在MySql中。我需要做的是在谷歌地图上显示标记。每行数据表示每秒的GPS数据。这里我的问题是我不能在谷歌地图上每秒钟显示一个标记 注意:我在js中使用定时器函数,这就是为什么每秒都分配一个变量,并且该变量将与db中的每秒数据匹配 这是我的代码:如何在google地图中显示标记从mysql php检索数据,php,javascript,mysql,Php,Javascript,Mysql,我在车辆跟踪系统工作,这里我把GPS数据存储在MySql中。我需要做的是在谷歌地图上显示标记。每行数据表示每秒的GPS数据。这里我的问题是我不能在谷歌地图上每秒钟显示一个标记 注意:我在js中使用定时器函数,这就是为什么每秒都分配一个变量,并且该变量将与db中的每秒数据匹配 这是我的代码: <script type="text/javascript"> <?php $vehi = 1; ?> window.setInterval(function initialize(
<script type="text/javascript">
<?php $vehi = 1; ?>
window.setInterval(function initialize()
{
<?php
$sql= mysql_query("select * from maploca where id='$vehi'");
$sqlnm = mysql_num_rows($sql);
$sqlqry=mysql_fetch_object($sql);
?>
<?php $vehi++;?>
var json = [
{ "lat":<?php echo $sqlqry->latitude; ?>,
"lng":<?php echo $sqlqry->longitude; ?> }]
var latlng = new google.maps.LatLng(<?php echo $sqlqry->latitude;?>,<?php echo $sqlqry->longitude;?>);
var myOptions = {
zoom: 18,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var polylineCoordinates = [
new google.maps.LatLng(<?php echo $sqlqry->latitude;?>,<?php echo $sqlqry->longitude;?>)];
var polyline = new google.maps.Polyline({
path: polylineCoordinates,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
editable: true
});
polyline.setMap(map);
for (var i = 0, length = json.length; i < length; i++) {
var data = json[i],
latLng = new google.maps.LatLng(data.lat, data.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
map: map
});
}
}, 1000);
</script>
setInterval(函数初始化()
{
这段代码不起作用。你混合使用PHP和JS的方式不应该是混合的
我建议创建两个单独的部分用于显示(JS)和获取数据(PHP)
setInterval应该调用php页面,该页面将根据timeparam返回坐标。
Javascript将迭代它自己的变量(而不是php变量),并使用ajax php网页调用添加新标记的映射
例如,这段代码不起作用。你混合使用PHP和JS的方式不应该混合使用
我建议创建两个单独的部分用于显示(JS)和获取数据(PHP)
setInterval应该调用php页面,该页面将根据timeparam返回坐标。
Javascript将迭代它自己的变量(而不是php变量),并使用ajax php网页调用添加新标记的映射
例如,每次计时器滴答响时,您都需要使用AJAX,或者每1秒刷新一次页面。显然,后者不是一个好主意。原因是页面上的PHP不会在计时器滴答响时执行(仅在第一次加载时)
您必须编写第二个文件,返回显示pin所需的经纬度数据
ie:(使用jQuery)
LATLONG服务:(/ajax/getlatlong.php?vid=1)
地图页:
<script type="text/javascript">
<?php $vehi = 1; ?>
var myGM = function() {
var me = this;
<?php
$sql= mysql_query("select * from maploca where id='$vehi'");
$sqlnm = mysql_num_rows($sql);
$sqlqry=mysql_fetch_object($sql);
?>
<?php $vehi++;?>
var json = [{
"lat":<?php echo $sqlqry->latitude; ?>,
"lng":<?php echo $sqlqry->longitude; ?>
}];
var latlng = new google.maps.LatLng(json[0].lat,json[0].lng);
var myOptions = {
zoom: 18,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var polylineCoordinates = [latlng];
var polyline = new google.maps.Polyline({
path: polylineCoordinates,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
editable: true
});
polyline.setMap(map);
window.setInterval(function() {
$.getJSON( "/ajax/getlatlong.php?vid=1&callback=?" )
.done( function (data) {
me.updateMap(data);
});
}, 2000);
this.updateMap = function(data) {
$(data).each(function() {
var latLng = new google.maps.LatLng(this.lat, this.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
map: me.map
});
});
}
}
window.onload = function() {
window.trackingMap = new myGM();
}
</script>
var myGM=函数(){
var me=这个;
每次计时器滴答声或每1秒刷新一次页面时,您都需要使用AJAX。显然,使用后者不是一个好主意。原因是页面上的PHP不会在每次计时器滴答声时执行(仅在第一次加载时)
您必须编写第二个文件,返回显示pin所需的经纬度数据
ie:(使用jQuery)
LATLONG服务:(/ajax/getlatlong.php?vid=1)
地图页:
<script type="text/javascript">
<?php $vehi = 1; ?>
var myGM = function() {
var me = this;
<?php
$sql= mysql_query("select * from maploca where id='$vehi'");
$sqlnm = mysql_num_rows($sql);
$sqlqry=mysql_fetch_object($sql);
?>
<?php $vehi++;?>
var json = [{
"lat":<?php echo $sqlqry->latitude; ?>,
"lng":<?php echo $sqlqry->longitude; ?>
}];
var latlng = new google.maps.LatLng(json[0].lat,json[0].lng);
var myOptions = {
zoom: 18,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var polylineCoordinates = [latlng];
var polyline = new google.maps.Polyline({
path: polylineCoordinates,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
editable: true
});
polyline.setMap(map);
window.setInterval(function() {
$.getJSON( "/ajax/getlatlong.php?vid=1&callback=?" )
.done( function (data) {
me.updateMap(data);
});
}, 2000);
this.updateMap = function(data) {
$(data).each(function() {
var latLng = new google.maps.LatLng(this.lat, this.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
map: me.map
});
});
}
}
window.onload = function() {
window.trackingMap = new myGM();
}
</script>
var myGM=函数(){
var me=这个;
谢谢你的回答…我得到了你的分数。但是我的问题是我在哪里以及如何使用增量变量来匹配db…谢谢你的回答…我得到了你的分数。但是我的问题是我在哪里以及如何使用增量变量来匹配db。。。