使用Openlayers 3在地图图块上绘制多边形,其中使用自定义图块服务器

时间:2018-01-03 12:11:52

标签: javascript openlayers-3

是否有人尝试在Openlayers3中使用本地服务器磁贴的区域中绘制多边形?

对于地图上的特定区域,我使用本地服务器磁贴来显示建筑物的计划,而其余的雄蕊瓷砖则使用。

问题在于,一旦绘制了多边形,它可能会“丢失 - 丢失”。如果我尝试在“外部”区域上绘制多边形,那么自定义图块呈现的那一切就可以了。

我在自定义磁贴中使用了zIndex,但没有运气。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我试图在两个局部图块上设置zIndex(低于绘制的特征),并且绘制的特征要比局部图块大,但最后当绘制的特征插入到我添加的矢量图层时地图上的矢量图层,在那里设置zIndex,一旦绘制多边形,使用clear()将其删除。

因此,

构造矢量图层

var stamenTiles = new ol.layer.Tile({
    source: new ol.source.Stamen({
       layer: 'toner'
    })
});

var source = new ol.source.Vector(); //DRAWING
var vector = new ol.layer.Vector({ //DRAWING
   source: source,
   zIndex: 100 // place the Polygon on top of the local tiles
});

地图对象:

var map = new ol.Map({
    target: 'map',
    layers: [stamenTiles, vector],
    view: new ol.View({
        center: ol.proj.fromLonLat([CoordinatesFactory.getLongitude(), CoordinatesFactory.getLatitude()]),
        zoom: 19,
        minZoom: 19,
        maxZoom: 22
    })
});

删除绘制的矢量图层

vector.getSource().clear();