【问题标题】:OpenLayers 3 icons projectionOpenLayers 3 图标投影
【发布时间】:2014-11-13 07:46:08
【问题描述】:

我正在使用 OpenLayers 3 制作地图,我在 PostgreSQL 中有坐标 (EPSG:3857),地图层是 OSM(与图标相同的投影,EPSG:3857)。

问题是当我增加缩放时,图标会消失……但如果我减少,图标就不会消失。

有人告诉我,投影的图标和图层必须相同。

有人可以帮帮我吗?

我是 StackOverFlow 的新手,

感谢您的宝贵时间,

恩里克。

注意:我的代码在 JSFiddle 中,可以看这里:jsfiddle.net/y3sLksg6/

【问题讨论】:

  • 您的 jsfiddle 没有显示任何内容。可以重写吗?
  • 嗨 Anders,我的问题是我在数据库 (postgresql) 中的 EPSG3857 中有坐标。我用这个坐标绘制特征......但是如果我增加缩放,图标就会消失,如果我减少图标是可见的。对不起我的英语......
  • 拜托,有人可以帮助我吗?这对我的项目非常重要。投影有问题。

标签: icons layer map-projections openlayers-3


【解决方案1】:

尝试为每个标记单独设置样式,如下例所示,这是您的 jsfiddle 的副本:

function AddMarkers() {
//create a bunch of icons and add to source vector
  var sizeY = Object.size(coordenadas);
  var x = null;
  var y = null;

  for (var i = 0; i < sizeY; i++) {
    x = coordenadas[i].Longitude;
    y = coordenadas[i].Latitude;
    var iconFeature = new ol.Feature({
        geometry: new ol.geom.Point([x, y]),
        name: 'Marker ' + i,
        population: 4000,
        rainfall: 500
    });
    markers[i] = [x, y];

    var iconStyle = new ol.style.Style({
        image: new ol.style.Icon(({
           anchor: [0.5, 46],
           anchorXUnits: 'fraction',
           anchorYUnits: 'pixels',
           opacity: 0.75,
           src: './img/circleRed.png'
       }))
    });      
    // This is new !
    iconFeature.setStyle(iconStyle);

    vectorSource.addFeature(iconFeature);
 }
 return vectorLayer;
}

【讨论】:

  • 早上好!感谢您的帮助,但我有同样的问题。当我创建地图时,图标出现在非洲。如果我设置了固定坐标,图标会出现在正确的位置,但是如果我从 PostgreSQL 获取坐标,我就会遇到这个问题。 PostgreSQL 中的坐标在 EPSG3857 中,我的图层是使用相同投影的 OSM。我不明白...
猜你喜欢
  • 1970-01-01
  • 2015-12-26
  • 2018-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
相关资源
最近更新 更多