Leaflet错误:在LayerGroup中创建自定义图标标记时,对象函数没有方法'createIcon'

时间:2012-07-14 22:55:34

标签: javascript leaflet

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

  

未捕获的TypeError:对象函数   (){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 vars是实例
  3. GroupLayers已添加到Map
  4. 使用图标选项
  5. 创建标记
  6. 将标记添加到GroupLayer
  7. 我尝试首先将标记添加到图层组,然后添加组图层以进行贴图:

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

1 个答案:

答案 0 :(得分:3)

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

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

相反:

case 'church':
    targetLayerGroup = layerChurch;
    targetIcon = ChurchIcon;
    break;