街道上的完整坐标与谷歌地图

时间:2010-04-30 04:48:57

标签: google-maps

如果你去这里:http://econym.org.uk/gmap/snap.htm有一些我想要做的事情的例子。我希望用户在谷歌地图小部件上输入路线,然后让地图沿着道路绘制路线。然后用户点击“提交”按钮,他们的路线被发送回服务器,然后存储在数据库中。

img

我想要发回构成紫色线条的所有信息,而不是只发回红色顶点。这可能吗?

1 个答案:

答案 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 数组中。