Tôi là người đi xe đạp trên núi và tôi theo dõi các chuyến đi của mình trên Samsung S3 Galaxy
bằng các chương trình như Endomondo
và Strava
. Mọi thứ liên quan đến chuyến đi của tôi đều được lưu trên 2 trang web này.Cách tốt nhất để nhập tọa độ từ tệp .gpx và hiển thị bằng API Google Maps
Tôi có trang web cá nhân của riêng mình, nơi tôi hiển thị các tuyến đường núi ở các khu vực khác nhau nơi tôi ở. Dữ liệu tuyến đường được ghi lại qua GPS
bằng Endomondo và Strava I đã xuất sang tệp .gpx
. Tôi cần dữ liệu này trong tệp .gpx để hiển thị trên trang web cá nhân của riêng tôi. Vì vậy, tôi bắt đầu tìm kiếm giải pháp bằng cách sử dụng Google Maps API
và nhập tệp .gpx mà không cần sử dụng công cụ bên ngoài.
Tôi đã cố gắng tìm câu trả lời. Tôi đã xem qua bài này, nơi các chàng trai sử dụng jQuery
để trích xuất các dữ liệu trong file XML và hiển thị dữ liệu này trên bản đồ Google của mình: http://www.jacquet80.eu/blog/post/2011/02/Display-GPX-tracks-using-Google-Maps-API
Đây là cách thực hiện nó vào đánh dấu HTML của tôi:
<script>
function initialize() {
var route1Latlng = new google.maps.LatLng(-33.7610590,18.9616790);
var mapOptions = {
center: route1Latlng,
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
$.ajax({
type: "GET",
url: "gpx/my_route.gpx",
dataType: "xml",
success: function (xml) {
var points = [];
var bounds = new google.maps.LatLngBounds();
$(xml).find("trkpt").each(function() {
var lat = $(this).attr("lat");
var lon = $(this).attr("lon");
var p = new google.maps.LatLng(lat, lon);
points.push(p);
bounds.extend(p);
});
var poly = new google.maps.Polyline({
// use your own style here
path: points,
strokeColor: "#FF00AA",
strokeOpacity: .7,
strokeWeight: 4
});
poly.setMap(map);
// fit bounds to track
map.fitBounds(bounds);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
Nó hoạt động. Nhưng đây có phải là cách chính xác để làm điều đó không? Có cách nào tốt hơn để thực hiện điều này không?
Tôi đang thực sự sử dụng SQL Server. Tại sao bạn đề xuất rằng tôi nên sử dụng tệp KML nếu tôi đã có chúng dưới dạng .gpx? –
Khi tạo kml từ cơ sở dữ liệu, bạn có thể dễ dàng hiển thị nhiều tuyến đường hơn trên cùng một bản đồ. Nó cũng dễ dàng hơn để tạo kiểu cho tuyến bằng cách sử dụng kiểu kml. –
Kml là "cách google" để lưu trữ và hiển thị dữ liệu địa lý và cả GMaps và GEarth đều có hỗ trợ tốt cho việc nhập và xuất kml thay vì gpx. Ngoài ra, rất tự nhiên để chuyển đổi giữa GPX và KML bằng các công cụ như, GPSBabel hoặc thậm chí là hack bằng ngôn ngữ yêu thích của bạn (python, php, v.v.) – heltonbiker