javascript - 使用 Openlayers 3 在 map 图 block 上绘制多边形,其中使用自定义图 block 服务器

标签 javascript openlayers-3

有没有人试过在 Openlayers3 中使用本地服务器瓦片的区域绘制多边形?

对于 map 上的特定区域,我使用本地服务器图 block 来可视化建筑物的平面图,而对于其余区域则使用 stamen 图 block 。

问题是,一旦绘制了多边形,它可能会“迷路 - 消失”在瓷砖下面。如果我尝试在“外部”区域绘制一个多边形,则渲染自定义图 block 的区域一切正常。

我在自定义图 block 中尝试了一些 zIndex,但没有成功。有什么想法吗?

最佳答案

我试图在两个局部图 block 上设置 zIndex(低于绘制的要素)并将绘制的要素设置为大于局部图 block ,但最后当绘制的要素被插入到我添加的矢量层中时 map 上的矢量图层,在那里设置 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
});

map 对象:

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();

关于javascript - 使用 Openlayers 3 在 map 图 block 上绘制多边形,其中使用自定义图 block 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077150/

相关文章:

javascript - ol.Map 不是 Safari 的功能,且 map 无法在 IE11 中显示

javascript - 单击标记并突出显示底层折线

javascript - ng-file-upload 执行 setRequestHeader 失败

javascript - 无法向 Google 智能显示屏发送推送通知

javascript - 复制谷歌驱动器文件夹中每个工作簿中的所有工作表

openlayers-3 - 如何在 openlayers-3 中交互式绘制圆

javascript - 具有动态 templateUrl 方法的嵌套指令失败

javascript - OpenLayers 无法在 map 上绘制 geoJSON

javascript - 无论如何要在单层上指定特征的 z 顺序?

openlayers - 如何扩展 OpenLayers 的生产版本