javascript - OL3,基于像素的缩放,矢量叠加错误偏移

标签 javascript openlayers-3

询问GIS ,但没有任何进展,希望这里有人能有想法。抱歉交叉发帖。正在更新 OL2 的项目,我尝试的效果很好。项目不是 map ,而是转换为缩放图 block 的文本文档图像。

添加了多边形矢量图层,表示 OCR 文本中找到的文本中术语/短语的坐标。

这个fiddle显示了一个页面,其中突出显示了术语“德克萨斯”的 3 个匹配项。请注意,术语在一个轴上的位置是正确的,但在屏幕上太高了。同样,相同的像素坐标在 OL2 中也有效。

摘自 fiddle :

        var vectorSource = new ol.source.Vector({
          features: (new ol.format.GeoJSON()).readFeatures(geojsonObject)
        });

        var map = new ol.Map({
            layers: [
            new ol.layer.Tile({
              source: source
            }),
            new ol.layer.Vector({
                source: vectorSource,
                style: styleFunction
            })
          ],
          target: 'zoom',
          view: new ol.View({
            projection: proj,
            constrainRotation: 0,
            center: imgCenter,
            zoom: 0,
            // constrain the center: center cannot be set outside
            // this extent
            extent: [0, -imgHeight, imgWidth, 0]
          })
        });

问题似乎与投影、范围或居中有关。如有任何帮助,我们将不胜感激。

最佳答案

您似乎使用了错误的坐标。我做了a fiddle您可以在文本周围画一个框,然后您会在顶部看到坐标。

因此,如果您将坐标更改为:

var geojsonObject = {
  'type': 'FeatureCollection',
  'features': [
  {
    'type': 'Feature',
    'geometry': {
      'type': 'MultiPolygon',
      'coordinates': [

      [[[1849.90, -2385.40], [1849.90, -2619.07], [2258.83, -2619.07], [2258.83, -2385.40]]]

      ]
    }
  }
  ]
};

多边形将位于您想要的位置。

关于javascript - OL3,基于像素的缩放,矢量叠加错误偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34905484/

相关文章:

javascript - 如何在 OpenLayers3 中将图 block 层居中

javascript - Openlayers 3 - 弹出窗口 - 奇怪的错误

移动设备上的 OpenLayers 3 dragBox

java - 撇号 chop 输入字段中的值

javascript - 无效的正则表达式 JavaScript

javascript - 事件 VueJs 上的 Prop 组件

openlayers-3 - 拖动要素 POLYGON OL3

javascript - 提取 js 对象数组中单个键的所有值

javascript - Rails 上的 React.js 错误

javascript - OL3 : How to get existing style properties (e. 克。矢量图层的填充颜色、描边颜色等)