如果你去这里:http://econym.org.uk/gmap/snap.htm有一些我想要做的事情的例子。我希望用户在谷歌地图小部件上输入路线,然后让地图沿着道路绘制路线。然后用户点击“提交”按钮,他们的路线被发送回服务器,然后存储在数据库中。
我想要发回构成紫色线条的所有信息,而不是只发回红色顶点。这可能吗?
答案 0 :(得分: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 数组中。也知道所有顶点或GMarkers也存储在 gmarkers 数组中。