Openlayers绘制未正确缩放到地图大小

时间:2017-06-19 14:27:44

标签: ionic-framework openlayers openlayers-3

我目前有一个openlayers地图,我正在绘制一个绘图覆盖。问题是当我缩放持有地图的div容器时,它实际上并没有正确地缩放绘图层,因此指针不与鼠标位置对齐。如果我没有做任何缩放,它会正确排列。除了div标签之外,我还尝试将html和body设置为100%宽度,但这也没有用。

mouse aligned

mouse not aligned

这是我的地图类型代码:

// create the bing maps layer
var raster = new ol.layer.Tile({
  source: new ol.source.BingMaps({
    key: 'AioGchlm6KiMF-8ws9hq9PEJKSZzGXj8aZ1OrDt-MlN_NY907-YdiaraNT9sCodZ',
    imagerySet: 'AerialWithLabels',
    maxZoom: 19
  })
});

// generate the actual map
var map = new ol.Map({
  layers: [raster],
  target: 'map',
  view: new ol.View({
    center: [-11000000, 4600000],
    zoom: 10
  })
});

// holds each of the drawings
var features = new ol.Collection();

// allows the user to draw a polygon on the map
var draw = new ol.interaction.Draw({
  features: features,
  type: 'Polygon'
});
map.addInteraction(draw);

// adds the polygon to the features collection when the drawing is complete
var featureOverlay = new ol.layer.Vector({
  source: new ol.source.Vector({features: features}),
  style: new ol.style.Style({
    fill: new ol.style.Fill({
      color: 'rgba(255, 255, 255, 0.2)'
    }),
    stroke: new ol.style.Stroke({
      color: '#ffcc33',
      width: 2
    }),
    image: new ol.style.Circle({
      radius: 4,
      fill: new ol.style.Fill({
        color: '#ffcc33'
      })
    })
  })
});
featureOverlay.setMap(map);

// allows the user to modify the drawings
var modify = new ol.interaction.Modify({
  features: features,
/*
  deleteCondition: function(event) {
    return ol.events.condition.shiftKeyOnly(event) &&
        ol.events.condition.singleClick(event);
  }
*/
});
map.addInteraction(modify);

和html代码:

<div #map id="map"></div> 

和css:

#map {
  height: 100%;
}

也许值得注意的是,我在离子3项目中这样做。

0 个答案:

没有答案