我正在将GPS坐标复制到文本文件中,以用于显示谷歌地图的网站。以前,我使用PHP脚本获取gps坐标和一些长字符串来创建我可以显示的kml文档。这似乎不是最好的方式。我有文本文件gpsinfo.txt,其中包含4个数据点的信息,这些数据在打开时看起来像这样:
7.784606,63.10403 7.784606,64.10403 7.784606,65.10403 7.784606,66.10403
我应该如何使用该文本文件在我的网页上创建4个点?
我正在考虑使用php文件创建一个我的网页可以读取的js文件,但这听起来不是一个非常干净的方法。
答案 0 :(得分:2)
您可以尝试使用php读取相同的文本文件,然后构建您需要的内容。
实施例:
<?php
$contents = file_get_contents("gpsinfo.txt");
$contentsArray = explode(" ", $contents);
$gpsCoords = array(); // your final result to use when constructing javascript for maps
foreach($contentsArray as $key => $gpsItem)
{
$gpsArray = explode("," $gpsItem);
$gpsArray[$key]['lat'] = $gpsItem[0];
$gpsArray[$key]['lon'] = $gpsItem[1];
// The latter two might change as I am not sure which is
// the lon and which is the lat at your end
}
?>
代码可用于返回坐标数组的函数,也可以只是内联,具体取决于您的代码风格。
另一种方法是将坐标存储到JSON数组中,然后尝试获取它并直接将其提供给javascript。虽然在我的例子中你只需要以某种特定的方式存储数据:即在php中调用构造数组或在javascript中为每个坐标调用一个函数,这将把标记放在地图上。 PHP在javascript之前运行(服务器端,而js运行客户端),这意味着有多种方法可以解决方案。
答案 1 :(得分:0)
这就是我要解决的问题:
我有一个php文件抓取一些网页来获取GPS坐标,然后我将它们复制到一个文本文件中但是采用JSON格式:
[{ "boat": "Edda", "coordinates" : { "lat" : 7.80086, "lon": 64.75658}}, { "......
然后我有一个读取文件的php文件,我的网页使用ajax访问并输出字符串,然后网页处理它。
网页上的ajax:
<script type="text/javascript" language="JavaScript">
var point;
microAjax("BackgroundFiles/genjsonGPS.php", function (res) {
var json_obj = JSON.parse(res.toString());
initialize(json_obj);
window.setTimeout(function(){
}, 500);
});
</script>
genjsonGPS.php:
<?php
$myFile = "vesselGPS.txt";
$fh = fopen($myFile, 'r');
$vesselGPS = fread($fh, filesize($myFile));
fclose($fh);
echo($vesselGPS);
?>