2012-07-18 23 views
2

我正在將GPS座標複製到文本文件中,以用於顯示谷歌地圖的網站。之前,我正在使用一個php腳本來獲取gps座標和一些長字符串來創建一個我可以顯示的kml文檔。這看起來並不是最好的方式。我有文本文件,gpsinfo.txt,有4個數據點,看起來像這樣的信息打開時:如何從谷歌地圖頁面的文本文件使用GPS座標?

7.784606,63.10403 7.784606,64.10403 7.784606,65.10403 7.784606,66.10403 

我應該如何使用該文本文件在我的網頁上創建4個點?

我正在考慮使用php文件來創建一個我的網頁可以讀取的js文件,但這聽起來不像一個非常乾淨的方法。

+0

爲什麼不直接存儲在JavaScript友好格式的座標?或者如果有這麼少的話,就把它們保存在PHP文件本身中。 – MrGlass 2012-07-18 08:10:56

回答

0

這是我在做什麼來解決這個問題:

我有一個PHP文件湊一些網頁獲得的GPS座標,然後我將它們複製到一個文本文件,但在一個JSON格式:

[{ "boat": "Edda", "coordinates" : { "lat" : 7.80086, "lon": 64.75658}}, { "...... 

然後我有一個php文件讀取文件,並通過我的網頁使用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); 


?> 
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運行客戶端),這意味着有多種方法來處理解決方案。

+0

感謝您的回覆!我認爲這是一個好方法。我目前一直在處理另一個問題,但是當我有機會實施這個問題時,請接受回答 – Stagleton 2012-07-19 18:02:58

+0

沒有問題,請告訴您如何解決問題,即使您使用其他方法。 – karmalis 2012-07-23 09:21:47