Openlayers を使用して、単一のレイヤーに個別の線分を描画しようとしています。サイトはこちらからご覧いただけます(地図をクリックして拡大してください)。赤いボックスは、道路セグメントを含む四分木を表しています。緑色の線は単一のポリラインとして表示されます。これを個々のセグメントとして表示したいと思います。
ここに私の既存の機能があります
function DrawSegments(response){
var SegmentsData = eval( '(' + response.responseText + ')' );
var line;
var lineFeature;
if(segmentsLayer)
segmentsLayer.destroy();
segmentsLayer = new OpenLayers.Layer.Vector("Segments");
var points = new Array();
var style = { strokeColor: '#00ff00',
strokeOpacity: 0.8,
strokeWidth: 2
};
map.addLayer(segmentsLayer);
map.addControl(new OpenLayers.Control.DrawFeature(segmentsLayer, OpenLayers.Handler.Path));
//Used this block as code example to possibly add lines using a WKT geometry collection
//var feature = new OpenLayers.Feature.Vector(
//OpenLayers.Geometry.fromWKT(
//"POLYGON((28.828125 0.3515625, 132.1875 -13.0078125, -1.40625 -59.4140625, 28.828125 0.3515625))"
//).transform(WGS,SMP)
//);
//segmentsLayer.addFeatures([feature]);
for (var i = 0; i < SegmentsData.length; i++) {
points.push(new OpenLayers.Geometry.Point(SegmentsData[i][0], SegmentsData[i][1]).transform(WGS,SMP));
points.push(new OpenLayers.Geometry.Point(SegmentsData[i][2], SegmentsData[i][3]).transform(WGS,SMP));
line = new OpenLayers.Geometry.LineString(points);
lineFeature = new OpenLayers.Feature.Vector(line, null, style);
}
segmentsLayer.addFeatures([lineFeature]);
}
私はもう試した:
の例を見つける
OpenLayers.Geometry.MultiLineString
と
OpenLayers.Geometry.Collection
lineFeature 変数を配列に変換し、各配列要素を個別に追加しようとしましたが、うまくいきませんでした。ドキュメンテーションは私を助けません。どんな助けでも大歓迎です。