3

我正在从 XML 流创建标记,并在其中设置自定义图标。我想将我的标记放在图层组中,以便我可以支持关闭某种类型的所有标记。当我使用自定义图标将标记添加到我的地图(使用 GroupLayer)时,我收到以下错误:

未捕获的类型错误:对象函数 (){this.initialize&&this.initialize.apply(this,arguments)} 没有方法“createIcon”

示例图标

 var ATVIcon = L.Icon.extend({
     iconUrl: './markers/atv.png',
     shadowUrl: '',
     iconSize: new L.Point(27, 17),
     shadowSize: new L.Point(0, 0),
     iconAnchor: new L.Point(22, 22),
     popupAnchor: new L.Point(-3, -76)
 });

示例层

var layerATV = new L.LayerGroup();

向地图或图层组添加标记

var thisMarker = new L.Marker(markerLocation, {title: $(this).attr('name')});
    targetLayerGroup.addLayer(thisMarker);
    thisMarker.setIcon(targetIcon);

我尝试先将图层组添加到地图,然后将标记添加到图层组:

  1. 图标变量被实例化
  2. GroupLayer 变量被实例化
  3. GroupLayers 添加到 Map
  4. 标记是使用图标选项创建的
  5. 标记添加到 GroupLayer

我尝试先将标记添加到图层组,然后将图层组添加到地图:

  1. 图标变量被实例化
  2. GroupLayer 变量被实例化
  3. 标记是使用图标选项创建的
  4. 标记添加到 GroupLayer
  5. GroupLayers 添加到 Map
4

1 回答 1

3

引用图标时,您需要在更新它们时使用括号,而不仅仅是分配给变量......

case 'church':
    targetLayerGroup = layerChurch;
    targetIcon = new ChurchIcon();
    break;

相对于:

case 'church':
    targetLayerGroup = layerChurch;
    targetIcon = ChurchIcon;
    break;
于 2012-07-15T02:13:59.030 回答