1

我有一个从 osm 文件加载的向量,它是一条表示电车线的折线,并以这种方式添加:

var line = new OpenLayers.Layer.Vector("Tramway : line 1", {
    strategies: [new OpenLayers.Strategy.Fixed()],
    protocol: new OpenLayers.Protocol.HTTP({
        url: "lines/line1.osm",
        format: new OpenLayers.Format.OSM()
    }),
    projection: new OpenLayers.Projection("EPSG:4326"),
    style: { strokeWidth: 5, strokeColor: "blue", strokeOpacity: 0.4, pointRadius: 6, fillOpacity: 0.4 }
});

我想要一个点(代表有轨电车)沿着这个向量移动。我不得不承认我没有尝试做任何事情,因为这看起来不像我用 Openlayers 做过的任何事情,而且我不知道我该怎么做。

有没有一种简单的方法可以做到这一点,还是我必须手动完成?我只是在寻找一点提示,因为我在 Internet 上没有找到任何关于此的信息。

4

1 回答 1

1

一种方法是走到您的线路节点并使用 xy 位置作为您的电车轨道位置:

//feature is the feature of line1
var a = [];
a = feature.geometry.getVertices();
for (var i=0; i<=a.length; i++) {  
    console.log("x: " + a[i].x + ",y: " + a[i].y);
}
于 2013-11-06T17:16:16.483 回答