【发布时间】:2015-10-07 01:25:40
【问题描述】:
我正在做一个项目,我应该在其中创建一个网页,该网页在指定的 GPS 坐标处显示带有标记的 Google 地图。 该项目按以下方式组织。在服务器端,我有一个 php 脚本,它接受来自 GPS 设备的 HTTP 请求,接收 GPS 坐标并将其存储在相应的 .txt 文件中。该 php 文件还包含 javascript/jquery 代码,该代码读取带有 GPS 坐标的 .txt 文件,创建 Google 地图的新实例并将标记放在地图上,供在 Web 浏览器中发出请求的用户使用。由于我是电子硬件工程师,这对我来说很新鲜。我发现的代码每 5 秒重新加载一次地图,但这会使地图在每次重新加载时闪烁/闪烁一段时间。此外,如果我在浏览器中手动更改缩放,它会在每次地图重新加载时重置为默认值。有什么办法可以避免地图闪烁,并顺利更新标记。以下是我拥有的 javascript/jquery 代码的 sn-p。
function initialize()
{
mapProp = {
center:myCenter,
zoom:17,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
setInterval('mark()',5000);
}
function mark()
{
map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var file = "gps.txt";
$.ajaxSetup({cache: false});
$.get(file, function(txt) {
var lines = txt.split("\n");
for (var i=0;i<lines.length;i++){
console.log(lines[i]);
var words=lines[i].split(",");
if ((words[0]!="")&&(words[1]!=""))
{
marker=new google.maps.Marker({
position:new google.maps.LatLng(words[0],words[1]),
});
marker.setMap(map);
map.setCenter(new google.maps.LatLng(words[0],words[1]));
map.addMarker(new MarkerOptions().position(entry.getValue()).title(entry.getKey()));
}
}
lastLength = lines.length;
marker.setAnimation(google.maps.Animation.BOUNCE);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
【问题讨论】:
-
那里有很多需要修复的地方。无论是在代码上还是在逻辑上。
gps.txt的格式是什么?是附加坐标还是完全覆盖? -
坐标附加到它上面。
-
而且它只是一个 "long,lat" 的列表?
-
它包括一些附加参数,如卫星数量,时间......所有参数均以逗号分隔。当新的参数列表到达时,它会附加在 .txt 文件的新行中。
-
所以我们可以通过行号来识别每组坐标?
标签: javascript jquery google-maps google-maps-api-3