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

时间:2016-01-20 16:35:03

标签: javascript openlayers-3

GIS被问到,但没有什么即将发生,希望有人在这里可能有想法。对不起,发帖。我正在从OL2更新项目,我正在尝试正常工作。项目不是地图,它是将文本文档转换为缩放图块的图像。

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

fiddle显示的页面突出显示“texas”一词的3次点击。请注意,术语的位置在一个轴上是正确的,但在屏幕上只是太高。同样,相同的像素坐标在OL2中工作。

摘自小提琴:

        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]
          })
        });

问题似乎与投射,范围或居中有关。非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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]]]

      ]
    }
  }
  ]
};

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