宣传单& Clodmade:锚定链接到存储的纬度/经度位置

时间:2012-11-20 12:38:42

标签: javascript maps leaflet cloudmade

我使用cloudmade和leaflet插件创建了一个地图。我有我的标记设置,我的目标是创建我自己的控制面板与3个地方链接。当您点击一个链接(例如伦敦)时,它将平移到存储的lat伦敦,而其他两个则相同。代码我已加载地图但容器消失了,我在控制台中收到以下错误消息:“Mycontrol.appendhild(link); - Mycontrol未定义。定义时仍然无效。

1)我是否在正确的路线上? 2)任何帮助实现这些示例或教程的帮助都很棒

感谢。

以下是代码的片段

[CODE]

[Cloudmade API Key and URL]

[Leaflet ICON Properties]
[Leaflet MARKERS]

[Leaflet toggle styles]

//CONTROL

var MyControl = L.Control.extend({
    options: {
        position: 'topright'
    },

    onAdd: function (map, position) {
        // create the control container
        var container = L.DomUtil.create('div', 'my-custom-control');

        // ... initialize other DOM elements, add listeners, etc.
        function createMapLink(location, zoom, name) {
            var link = document.createElement('a');
            link.href = '';
            link.innerHTML = "Go to " + name;
            link.onclick = function() {
                map.setCenter(location, zoom);
                return false;
            }
            Mycontrol.appendChild(link);
        }

        createMapLink(new L.LatLng(lat,lon), 11, 'Location1');
        createMapLink(new L.LatLng(lat,lon), 11, 'Location2');
        createMapLink(new L.LatLng(lat,lon), 11, 'Location3');

        return container;
    }
});

map.addControl(new MyControl());


L.control.layers(baseMaps, overlayMaps, MyControl).addTo(map);

[/ CODE]

1 个答案:

答案 0 :(得分:0)

您正在尝试扩展Control类,但将结果分配给var。 新类不是var,而是函数,因此请在开头删除var关键字。

查看传单缩放控件的source,了解如何进行操作。