在OL3中,矢量数据图层在地图setCenter或缩放

时间:2015-04-27 15:15:37

标签: zoom layer

迁移地图以使用OL3。当我调用map.getView()。setCenter或map.getView()。缩放地图时,地图行为正确,但我的矢量数据层不再可见。我必须在地图上进行MouseWheelZoom交互,然后显示数据层。这类似于此未答复的Stackoverflow帖子(How to reload WMTS Tiles after progromattically changing the map center and zoom?)中发现的问题,除了我的地图图块正确渲染,它是我的矢量图层不可见。

我正在创建WMS切片图层并使用以下内容进行贴图:

  div = @get 'element'

  layers = [ new (ol.layer.Tile)(
    title: 'Imagery'
    source: new (ol.source.TileWMS)(
      url: WMS_VMAP_MAP_SERVER_URL
      name: 'VMAP'
      params:
        LAYERS: 'basic'
        FORMAT: 'image/png'
        TRANSPARENT: true)) ]

  map = new (ol.Map)(
    interactions: ol.interaction.defaults().extend([ new (ol.interaction.Select)(style: selectedIconStyle) ])
    controls: ol.control.defaults().extend([ new (ol.control.ScaleLine)(units: 'nautical') ])
    layers: layers
    target: div
    view: new (ol.View)(
      projection: 'EPSG:4326'
      center: [
        0
        0
      ]
      zoom: 1
      maxResolution: 0.703125))

使用以下功能创建单个功能:

        feature = new ol.Feature({
            geometry: new ol.geom.Point([lng, lat], 'XY'),
            title: 'some title'
            latitude: lat
            longitude: lng
        })
        vectorSource.addFeature feature

使用以下方法添加矢量图层:

vectorLayer = new (ol.layer.Vector)(
  source: vectorSource  #new (ol.source.Vector)({})
  style: circleIconStyle  #my defined icon style
  id: 'MYDATA'
)
map.addLayer vectorLayer

当以下事件触发......

  map.on('singleclick', (e) ->
    map.forEachFeatureAtPixel(e.pixel, ((feature, layer) ->
    ...
    )
  )

...作为事件处理程序的一部分我正在这样做:

        map.getView().setCenter [
          feature.get('longitude')
          feature.get('latitude')
        ]
        map.getView().setZoom 3

地图正确居中和缩放,但默认情况下我的矢量图层数据不会显示。在setCenter或放大视图后,是否有其他我没有做或调用以刷新数据层?或者在我如何设置它时我是否有其他不正确的东西?

感谢名单

1 个答案:

答案 0 :(得分:1)

固定。问题是坐标被视为几何的字符串,而不是数字。修复是为了确保设置坐标的位置,它们被明确地视为一个数字,以消除方程中的模糊性。所以无论我在地图代码中设置lat / lon(或纬度/经度),我都使用Number(lat)和Number(lon)代替。

Eric Lemoine回答位于http://comments.gmane.org/gmane.comp.gis.openlayers.devel.ol3/4773的另一个问题的道具,因为在那里我看到了他对该标记显示问题的解决方案,并认为它也可以解决我的问题。它确实如此。

相关问题