Openlayers3 从元素获取地图

Tyl*_*itt 5 javascript openlayers gwt-openlayers

Openlayers 3 中有没有办法获取附加到特定 html 元素的地图?

就像是:

var map = new ol.Map({
  view: new ol.View({
    center: [0, 0],
    zoom: 1
  }),
  layers: [
    new ol.layer.Tile({
      source: new ol.source.MapQuest({layer: 'osm'})
    })
  ],
  target: 'map'
});

//Later on, in a different file
var myMap = $("#map").ol.Map()
Run Code Online (Sandbox Code Playgroud)

eri*_*lem 6

地图对象有对 HTML 元素的引用,但 HTML 元素没有对地图对象的引用。HTML 元素根本不知道地图对象。

如果您使用 jQuery,您可能会使用data 方法在 jQuery 对象中存储对地图的引用。例如:

var map = new ol.Map({
  target: 'map', 
  //... 
});
$('#map').data('map', map);
Run Code Online (Sandbox Code Playgroud)

然后,从元素获取对地图的引用:

var map = $('#map').data('map');
Run Code Online (Sandbox Code Playgroud)