Проекция иконок OpenLayers 3

Я делаю карту с помощью OpenLayers 3, у меня есть координаты (EPSG: 3857) в PostgreSQL, а слой карты — OSM (та же проекция, что и у значков, EPSG: 3857).

Проблема в том, что когда я увеличиваю масштаб, значки исчезают... Но если я уменьшаю, значки не исчезают.

Кто-то сказал мне, что ICONS и LAYER проекции должны быть одинаковыми.

Может кто-то мне помочь, пожалуйста?

Я новичок в StackOverFlow,

Спасибо за уделенное время,

Энрике.

Примечание. Мой код находится в JSFiddle, его можно посмотреть здесь: jsfiddle.net/y3sLksg6/


person Community    schedule 13.11.2014    source источник
comment
Ваш jsfiddle ничего не показывает. Не могли бы вы переписать его?   -  person Anders Finn Jørgensen    schedule 13.11.2014
comment
Привет Андерс, моя проблема в том, что у меня есть координаты в EPSG3857 в базе данных (postgresql). Я рисую объект с этими координатами ... но если я увеличиваю масштаб, значок исчезает, а если я уменьшаю значок, он становится видимым. Извините за мой английский...   -  person    schedule 14.11.2014
comment
Пожалуйста, кто-нибудь может мне помочь? Это очень важно для моего проекта. Есть проблема с проекциями.   -  person    schedule 17.11.2014


Ответы (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;
}
person Anders Finn Jørgensen    schedule 17.11.2014
comment
Доброе утро! Спасибо за помощь, но у меня такая же проблема. Когда я создаю карту, в Африке появляются значки. Если я устанавливаю фиксированные координаты, значок появляется в правильном месте, но если я получаю координаты из PostgreSQL, у меня возникает эта проблема. Координаты в PostgreSQL находятся в формате EPSG3857, а мой слой — это OSM, использующий ту же проекцию. я не понимаю... - person ; 18.11.2014