Я использую LeafletJS для создания пользовательской карты макета лаборатории, и я планирую разместить некоторые слои прямоугольника, чтобы показать, используются ли области. В настоящее время у меня есть рабочий тестовый пример с использованием координат для определения каждой фигуры, но есть ли способ создать объект формы стандартного размера, который можно назвать и подпитывать одну координату, чтобы центрировать себя?Есть ли способ сделать объект многократной формы?
Вот текущий код моего углового контроллера, если это помогает.
function showMap() {
var map = L.map('mapid', {
crs: L.CRS.Simple,
maxZoom: 4,
attributionControl: false
}).setView([0, 0], 1),
southWest = map.unproject([0, 4096], map.getMaxZoom()),
northEast = map.unproject([4096, 0], map.getMaxZoom()),
bounds = L.latLngBounds(southWest, northEast);
L.tileLayer('images/4231/{z}/{x}/{y}.png', {
minZoom: 1,
maxZoom: 4,
center: [0, 0],
noWrap: true,
bounds: bounds
}).addTo(map);
var testBench = [{
number: "1A1",
coord1: "-48.6",
coord2: "6",
coord3: "-81.4",
coord4: "71",
inUse: true
}, {
number: "1A2",
coord1: "-48.5",
coord2: "71",
coord3: "-81",
coord4: "137",
inUse: false
}, {
number: "1A3",
coord1: "-48.5",
coord2: "137",
coord3: "-81",
coord4: "202",
inUse: true
}];
angular.forEach(testBench, function(item, index) {
var location = [
[item.coord1, item.coord2],
[item.coord3, item.coord4]
],
color;
switch (item.inUse) {
case true:
color = "red"
break;
case false:
color = "green"
break;
}
L.rectangle(location, {
color: color,
weight: 1
}).bindPopup("Bench Number is: " + item.number).addTo(map);
})
map.setMaxBounds(bounds);
}
В конце концов, информация скамья будет извлечено из БД, а не переменной, и там будут сотни скамеек, поэтому я ищу, чтобы оптимизировать компоновку позиционирования как можно больше.