首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用OpenLayers在两点之间绘制直线

使用OpenLayers在两点之间绘制直线
EN

Stack Overflow用户
提问于 2012-03-19 13:00:48
回答 2查看 32.4K关注 0票数 15

我有两个点,lolLat是0,10和30,0

现在,为了在这一点上绘制一个标记,我在为它生成标记时使用了这个转换

代码语言:javascript
复制
lonLat.transform(
                 new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
                 map.getProjectionObject() // to Spherical Mercator Projection
             )

我如何在它们之间画线?在openlayers中有什么方法可以做到这一点吗?我已经尝试过在向量层中使用线串来做这件事,但它似乎对我不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-19 15:23:25

例如:

代码语言:javascript
复制
map = new OpenLayers.Map();

var start_point = new OpenLayers.Geometry.Point(0,10);
var end_point = new OpenLayers.Geometry.Point(30,0);

var vector = new OpenLayers.Layer.Vector();
vector.addFeatures([new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([start_point, end_point]))]);
map.addLayers([vector]);

Live demo

票数 21
EN

Stack Overflow用户

发布于 2015-03-09 15:08:12

在OpenLayers版本3.3中,您可以这样做

代码语言:javascript
复制
var points = [ [-89.8802, 32.5804], [-95.04286, 46.9235] ];

for (var i = 0; i < points.length; i++) {
    points[i] = ol.proj.transform(points[i], 'EPSG:4326', 'EPSG:3857');
}

var featureLine = new ol.Feature({
    geometry: new ol.geom.LineString(points)
});

var vectorLine = new ol.source.Vector({});
vectorLine.addFeature(featureLine);

var vectorLineLayer = new ol.layer.Vector({
    source: vectorLine,
    style: new ol.style.Style({
        fill: new ol.style.Fill({ color: '#00FF00', weight: 4 }),
        stroke: new ol.style.Stroke({ color: '#00FF00', width: 2 })
    })
});

然后将图层添加到地图

代码语言:javascript
复制
map.addLayer(vectorLineLayer);
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9765224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档