1 votos

OpenLayers 4.6.5: No se puede mostrar una característica de punto

Estoy empezando a usar OpenLayers, y no puedo usar una versión posterior a la 4.6.5

Estoy tratando de mostrar un punto con este trozo de código, sin éxito hasta ahora. El mapa se muestra, está centrado donde quiero, pero no hay ningún punto a la vista. No hay error en la consola. ¿Alguien podría indicarme el problema?

    <div id="map" class="map"></div>
    <script type="text/javascript">

        var obsFeature = new ol.Feature({
            geometry : new ol.geom.Point([1.79987472,43.02386932]),
            labelPoint: new ol.geom.Point([1.79987472,43.02386932]),
            name: 'My Point',
            size : 10
        });

        var features = new Array(1);
        features[0] = obsFeature;
        var imageStyle = new ol.style.Style({
            image: new ol.style.Circle({
            radius: 5,
            snapToPixel: false,
            fill: new ol.style.Fill({color: 'yellow'}),
            stroke: new ol.style.Stroke({color: 'red', width: 10})
            })
        });

        obsFeature.setStyle(imageStyle);
        var observationsSourceVector = new ol.source.Vector({
            features: features
        });
        var observationsVectorLayer = new ol.layer.Vector({
            source: observationsSourceVector,
            style: imageStyle
        });

        var map = new ol.Map({
          target: 'map',
          layers: [
            new ol.layer.Tile({
              source: new ol.source.OSM()
            }),
            observationsVectorLayer
          ],
          view: new ol.View({
            center: ol.proj.fromLonLat([1.79987472,43.02386932]),
            zoom: 10
          })
        });

        map.render();

      </script>

</dl>

1voto

imre Puntos 8

Su punto se añade al mapa, pero está en el lugar equivocado (cerca de lat/lon 0,0) porque su punto está usando coordenadas EPSG:4326 y su mapa está usando EPSG:3857. Pruebe esto:

var obsFeature = new ol.Feature({
            geometry : new ol.geom.Point(ol.proj.fromLonLat([1.79987472,43.02386932])),
            labelPoint: new ol.geom.Point(ol.proj.fromLonLat([1.79987472,43.02386932])),
            name: 'My Point',
            size : 10
        });

1 votos

Sí, eso es. Muchas gracias.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X