【问题标题】:drawing lines in open layers 3在开放层 3 中绘制线条
【发布时间】:2017-01-21 23:24:09
【问题描述】:

我知道已经有很多这样的帖子,但我已经尝试了很多,但它们似乎并没有解决我的问题。

我正在尝试使用线串在地图上画一条线,但无论我做什么,它都不会画一条线。这是我的代码:

var coords = [[78.65, -32.65], [15.65, -98.65]];

var lineStyle = new ol.style.Style({
    stroke: new ol.style.Stroke(({
        width: 10
    }))
});

var layerLines = new ol.layer.Vector({
    style: lineStyle,
    source: new ol.source.Vector({
        features: [new ol.Feature({
            geometry: new ol.geom.LineString(coords, 'EPSG:4326',   'EPSG:3857'),
            name: 'Line'
        })]
    }),
});

var map = new ol.Map({
    layers: [
        mainLayer,
        vectorLayer,
        layerLines
    ],
    projection: "EPSG:3857",
    target: 'map',
    view: view
});

如果我在没有转换的情况下创建线串,那么它会在 0,0 处显示一个点,但我认为它无法读取我的坐标,因为如果我将其留空,则不会出现点,因此它不能使用默认值。

我对 javascript 和 OL 很陌生,所以我目前的示例项目是创建一个测量应用程序,人们可以在其中测量两个点并在它们之间画一条线。回答时请记住这一点。

【问题讨论】:

    标签: javascript openlayers-3


    【解决方案1】:

    注意一些变化:

    var coords = [[-65.65, 10.10], [13, 18]];
    var lineString = new ol.geom.LineString(coords);
    // transform to EPSG:3857
    lineString.transform('EPSG:4326', 'EPSG:3857');
    
    // create the feature
    var feature = new ol.Feature({
        geometry: lineString,
        name: 'Line'
    });
    

    http://jsfiddle.net/jonataswalker/7cf5egm2/

    我改了coords,原来的有点奇怪|错了。

    【讨论】:

    • 我所遵循的示例是在一行中创建它们,但显然您需要将其分解以正确转换它。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2015-11-04
    • 2023-03-12
    • 2023-03-10
    • 2011-09-08
    • 2018-04-04
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多