LineString和multiLine openlayers 3

时间:2014-11-13 09:56:38

标签: openlayers-3

我想使用ol.genom.lineString在地图上显示线条,我的计划是将来使用multiLineString同时实现3行。我的问题是我无法弄清楚应该如何实现LineString。这就是我现在所处的位置:

http://jsfiddle.net/6RS2z/125/

(function(){

var map = new ol.Map({
  layers: [new ol.layer.Tile({source: new ol.source.OSM()})],
  target: document.getElementById('map'),
  view: new ol.View({
    center: [0, 0],
    zoom: 1
  })
});

 var vectorSource = new ol.source.Vector({
  //create empty vector
});

var plyFeature = new ol.Feature({
    genometry : new ol.geom.LineString([0,0,18,60], 'EPSG:4326',   'EPSG:3857')
});

vectorSource.addFeature(plyFeature);

var plyLayer = new ol.layer.Vector({
    source : vectorSource  
})

map.addLayer(plyLayer);

})();

1 个答案:

答案 0 :(得分:6)

要创建ol.geom.LineString,您需要提供一个点数组作为第一个构造函数参数:

var geom = new ol.geom.LineString([[0, 0], [18, 60]]);

要将几何图形转换为视图投影,请执行以下操作:

geom.transform('EPSG:4326', 'EPSG:3857');

创建ol.geom.MultiLineString时,您提供一系列线串作为第一个构造函数参数:

var multigeom = new ol.geom.MultiLineString([
  [[0, 0], [18, 60]],
  [[18, 60], [9, 30]]
]);

对于所有几何类型,坐标转换的工作方式相同。