-1

我一直在寻找有关如何在 OSM/OpenLayers 上放置标记列表(数组)的一天,但不幸的是,官方示例对我不起作用。您能告诉我显示地图的最佳方式,然后使用自定义 PNG 标记图标将其添加到坐标数组吗?

我正在使用 OpenLayers 5。

4

1 回答 1

1

标记坐标数组的最简单方法是在 MultiPoint 几何中使用该数组。如果坐标是 LonLat,则需要将几何图形转换为地图坐标:

  var iconFeature = new ol.Feature({
    geometry: new ol.geom.MultiPoint([[-90, 0], [-45, 45], [0, 0], [45, -45], [90, 0]]).transform('EPSG:4326','EPSG:3857'),
    name: 'Null Islands',
    population: 4000,
    rainfall: 500
  });

默认情况下,图标将以图像的自然大小显示,但您可以通过设置缩放选项来更改它:

  var iconStyle = new ol.style.Style({
    image: new ol.style.Icon(/** @type {module:ol/style/Icon~Options} */ ({
      anchor: [0.5, 46],
      anchorXUnits: 'fraction',
      anchorYUnits: 'pixels',
      src: 'https://openlayers.org/en/v5.3.0/examples/data/icon.png',
      scale: 0.5
    }))
  });

http://mikenunn.16mb.com/demo/OL_5.3.0_multi-icon.html

于 2019-01-16T13:18:30.077 回答