地图标记刷新/更新而不刷新整个地图
Map Marker refresh/Update without refreshing whole map
我不知道如何编辑它,这样地图就不会刷新,但它会继续刷新标记以获得更新的位置。
职位来自这条线路
<?php
$json_pos = file_get_contents("C:'Users'KLAUS'Desktop'New'This SAMP'scriptfiles'positions.json");
?>
就在那里
<?php
$json_pos = file_get_contents("C:'Users'KLAUS'Desktop'New'This SAMP'scriptfiles'positions.json");
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="1" />
<title>SA:MP live map</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<style type="text/css">
#map-canvas { display: inline-block; height: 800px; width: 800px; }
#map-legend { padding: 10px; background-color: rgba(141, 142, 127, 0.46);}
</style>
</head>
<body>
<div id="map-canvas"></div>
<script src="js/SanMap.min.js"></script>
<script type="text/javascript">
var p_pos = <?php echo (empty($json_pos)) ? "" : $json_pos ?>;
var mapType = new SanMapType(0, 1, function (zoom, x, y) {
return x == -1 && y == -1
? "images/tiles/map.outer.png"
: "images/tiles/map." + zoom + "." + x + "." + y + ".png";//Where the tiles are located
});
var satType = new SanMapType(0, 3, function (zoom, x, y) {
return x == -1 && y == -1
? null
: "images/tiles/sat." + zoom + "." + x + "." + y + ".png";//Where the tiles are located
});
var map = SanMap.createMap(document.getElementById('map-canvas'),
{'Map': mapType, 'Satellite': satType}, 2, SanMap.getLatLngFromPos(0,0), false, 'Satellite');
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(document.getElementById('map-legend'));
if(p_pos !== "")
{
for (var i = 0; i < Object.keys(p_pos).length; i++)
{
if(p_pos[i].online == 1) createMarker(i);
}
}
google.maps.event.addListener(map, 'click', function(event) {
var pos = SanMap.getPosFromLatLng(event.latLng);
console.log(pos.x + "," + pos.y);
});
function createMarker(id)
{
var p_windows = new google.maps.InfoWindow({
content: "<p>"+p_pos[id].name+" <b>(ID: "+id+")</b><br>Ping: "+p_pos[id].ping+"</p>"
});
var p_marker = new google.maps.Marker({
position: SanMap.getLatLngFromPos(p_pos[id].x, p_pos[id].y),
map: map,
icon: "images/marker.png"
});
google.maps.event.addListener(p_marker, 'click', function() {
p_windows.open(map,p_marker);
});
}
</script>
</body>
删除顶部标题行:<meta http-equiv="refresh" content="1" />
以禁用刷新页面。然后在回调中添加一个setInterval
函数来从php服务获取新数据——
- 首先使用marker.setMap(null)清除上一个标记,然后调用CreateMarker(id)
或
- 您可以编写updateMarker(id)函数,并使用
marker.setPosition()
来更新位置
这些通常是您实现自己的代码的想法。
相关文章:
- 嵌入的自定义谷歌地图不会在没有刷新的情况下显示
- 谷歌地图Api v3-在Domready之后刷新Markerclusterer
- 在Jquery多步骤表单中刷新谷歌地图
- 将标记添加到现有的谷歌地图(不刷新谷歌地图)
- 谷歌地图没有在标签2中和标签3中正确加载.如何创建刷新选项卡
- 信息窗口未刷新:AngularJS和谷歌地图
- 如何刷新Bing地图AJAX
- 在不刷新的情况下跟踪某个正方形中的地图标记
- 刷新谷歌地图信息窗口中的内容
- 传单地图需要刷新页面才能显示在 Jquery 移动应用程序中
- 刷新后,OpenLayers 弹出窗口在地图上仍然可见
- 我的实时地图不会自动刷新
- 在 AngularJS 中刷新地图
- 刷新传单地图:地图容器已初始化
- 谷歌地图仅在“刷新”后加载
- 谷歌地图 API 在刷新 JQM 之前不会加载
- 谷歌地图 API V3 在多次页面刷新时加载
- 谷歌地图在刷新页面后显示为灰色
- 如何在不刷新地图的情况下更新gmaps中的标记
- Decarta-如何刷新地图