2010-04-30 86 views
0

如果你去这里:http://econym.org.uk/gmap/snap.htm有一些我试图做的东西的例子。我希望用户在Google地图窗口小部件上输入路线,然后让地图沿道路绘制路线。然后用户点击一个“提交”按钮,他们的路由被发送回服务器,并存储在数据库中。谷歌地图在街道上的完整坐标

img

而是发回正当红的顶点,我想送回来这一切造成了紫线的信息。这可能吗?

回答

2

紫色线条是以DOM格式存储为数组的多段线。您可以将它们的信息发送到您的服务器。

this页,有你在地图上点击后如下JavaScript事件触发:

var firstpoint = true; 
var gmarkers = []; 
var gpolys = []; 
var dist = 0; 

GEvent.addListener(dirn,"load", function() { 
    // snap to last vertex in the polyline 
    var n = dirn.getPolyline().getVertexCount(); 
    var p=dirn.getPolyline().getVertex(n-1); 
    var marker=new GMarker(p); 
    map.addOverlay(marker); 
    // store the details 
    gmarkers.push(marker); 
    if (!firstpoint) { 
     map.addOverlay(dirn.getPolyline()); 
     gpolys.push(dirn.getPolyline()); 
     dist += dirn.getPolyline().Distance(); 
     document.getElementById("distance").innerHTML="Path length: "+(dist/1000).toFixed(2)+" km. "+(dist/1609.344).toFixed(2)+" miles."; 
    } 
    firstpoint = false; 
    }); 

这些代码行说,你点击地图后,您单击的点捕捉到最近的路,那么如果将第二个点添加到另一个点,则在所有这些折线之间将出现蓝色路线

正如我以前所说,这些折线存储在gpolys array.Also知道,所有的顶点或GMarkers也存储在gmarkers阵列。