2016-09-09 4 views
0

Я использую 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); 
} 

В конце концов, информация скамья будет извлечено из БД, а не переменной, и там будут сотни скамеек, поэтому я ищу, чтобы оптимизировать компоновку позиционирования как можно больше.

ответ

0

Есть ли способ создать объект формы стандартного размера, который можно назвать и подавать на одну координату, чтобы центрировать себя?

В листе, нет.

листовки вектор особенность или L.Path с (L.Polyline сек и L.Polygon ы) определяются их координатами, а не их центроиды и ряд смещения к этому центроиде.

Возможно, вы захотите реализовать простой Factory design pattern, чтобы создавать объекты в форме, имеющие только центральную точку.

Смежные вопросы