Я створив карту за допомогою cloudmade таплагіни листівки У мене встановлені маркери, і моя мета - створити власну панель управління з 3-ма посиланнями на місця. Коли ви натиснете на посилання (наприклад, Лондон), він перейде до збереженої лат Лондона і такий же, як для інших двох. Код у мене завантажує карту, але контейнер зникає, і я отримую таке повідомлення про помилку в консолі: "Mycontrol.appendhild (посилання); - Мій контроль не визначений. Це все ще не працює, коли він визначений.
1) Чи я з цим на правильному шляху? 2) Будь-яка допомога, щоб ця робота працювала над прикладами або навчальними посібниками, була б чудовою
Дякую.
Ось фрагмент коду
[КОД]
[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);
[/ КОД]
Відповіді:
0 для відповіді № 1Ви намагаєтеся розширити клас Control, але присвоївши результат варі. Новий клас - це не var, а функція, тому видаліть ключове слово var на початку.
Погляньте на джерело керування масштабуванням листівки для прикладу того, як це зробити.