php - 更新 map 标记而不刷新页面 - 传单

标签 php javascript jquery html leaflet

我这里有一个情况。我正在尝试使用传单 Javascript 库在在线 map 上显示主题的当前位置。我的网站有两个页面。 Page-1 有 map 显示,Page-2 输入对象的当前位置并相应地设置 map 。我使用蓝色标记在 map 上显示主题位置。 如果我加载第 1 页,标记会正确显示,但如果我更新第 2 页上的位置,则第 1 页的 map 上的主体位置不会更新。

这是我的第 1 页代码:

<!DOCTYPE html>
<html>
<head>
<title></title>
<h1></h1>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5/leaflet.css" />
<link rel="stylesheet" href="CSS/mystyle.css" />
<!--[if lte IE 8]>
    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5/leaflet.ie.css" />
<![endif]-->
<script src="http://cdn.leafletjs.com/leaflet-0.5/leaflet.js"></script>
<script src="SCRIPT/jquery-1.9.1.js"></script>
<script src="SCRIPT/myscript.js"></script>
</head>

<body onload="LoadMap()">
<h2>Current location:</h2>
<table border="1" id="currentloc_table">
    <tr>
        <th>Name</th>
        <th>IMEI</th>
        <th>Latitude</th>
        <th>Longitude</th>
    </tr>
    <tr>
        <td>Azeem HTC Device</td>
        <td>357710043411902</td>
        <td></td>
        <td></td>
    </tr>
</table>
<br/><br/>
<div id="map"></div>
</body>
</html>

这是myscript.js的代码:

            var map;
            var marker;

            function LoadMap()
            {

                $.ajax({
                        url: "../Database/getcurrentlocation.php?deviceId=357710043411902",
                        success: function(data){
                            if(data!=null)
                            {
                                var dataArray = data.split(/~/);
                                SetMap(dataArray[0],dataArray[1]);
                            }
                         }
                      });


                setTimeout(function(){LoadMap();},10000);
            }

            function SetMap(lati,longi)
            {
                var loc_table = document.getElementById('currentloc_table');
                loc_table.rows[1].cells[2].innerHTML = lati;
                loc_table.rows[1].cells[3].innerHTML = longi;
                map = L.map('map').setView([lati, longi], 12);
                L.tileLayer('http://{s}.tile.cloudmade.com/XXXXXXXXXXXXXXXXXXXXXXXXXXXX/997/256/{z}/{x}/{y}.png', {
                attribution: '',
                maxZoom: 18
                }).addTo(map);
                marker = L.marker([lati, longi]).addTo(map);
            }

当我重新加载页面时, map 会更新。但是我可以在不执行第 1 页刷新的情况下使用新位置更新 map 吗?

谢谢

最佳答案

直接放

setTimeout(function(){LoadMap();},10000);

在 LoadMap 函数之外

关于php - 更新 map 标记而不刷新页面 - 传单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790394/

相关文章:

javascript - 我是否应该允许包含脚本标签(来自 WordPress 数据库)的内容动态插入到我的应用程序中的 html 中?

javascript - 是否可以确保用户的输入不超过 JavaScript 中的特定范围?

javascript - 如何数据绑定(bind) Angular-ui-bootstrap 轮播控件?

javascript - Mocha 单元测试运行缓慢

javascript - jqGrid:列调整大小触发点击事件

JQuery 验证大小 < 2mb 的图像

php - 可怕的 "Warning: imagecreatefromjpeg() : '/tmp/filename' 不是一个有效的 JPEG 文件 in/phpfile.php on line xxx”

html - PHP - DOM,从 html 中剥离表格

javascript - 使用 jQuery,如何在元素上或元素内查找数据属性? (树遍历)

php - apache 的 CORS 问题