2011-02-15 47 views
2

那裏有很多gpx數據。 使用谷歌地圖,Kml數據加載和顯示很容易。 代碼:google map gpx loading,如何?

var ctaLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml'); 
     ctaLayer.setMap(this.mMap); 

,但是,我希望讓谷歌地圖上的GPX數據顯示。 我知道我可以使用babel,轉換器,它是一個軟件而不是庫。

我不知道什麼是在谷歌地圖上顯示gpx數據的最佳方式。 使用PHP(重複文件)製作轉換器,或使用JavaScript製作加載器... - ;

我目前的編程語言是php的服務器。

任何好的想法或意見,請~~~

回答

2

我有兩個建議,都需要在你身邊的一些工作。 OpenLayers是一個包含GPX閱讀器的JavaScript映射API,您可以使用OpenLayers(以Google作爲基本映射)或僅使用GPX格式閱讀器。或者,您可以使用OGR庫命令行實用程序ogr2ogr將GPX轉換爲KML,可能會設置一個Web服務來執行此操作。將命令行調用封裝在PHP腳本中很容易,該腳本可以通過URL檢索GPX文件並將其轉換爲KML並返回生成的KML。

0

我建議一個非常簡單的方法來執行此操作:執行AJAX請求以從Javascript加載GPX文件,然後解析它(使用jQuery非常直觀地)並創建一條折線以顯示在Google地圖上。

更多詳情和生活示例:Display GPX tracks using Google Maps API(適用於Google Maps API v3)。

3

您可以將GPX文件提供給您對問題所用的KmlLayer構造函數。下面的代碼對我有用:

function initialize() { 

    var latlng = new google.maps.LatLng(40.73, -111.93); 
    var myOptions = { 
     zoom: 10, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    var ctaLayer = new google.maps.KmlLayer('http://siteyoucontrol.com/lake-gpx.xml'); 

    ctaLayer.setMap(map); 
}