map: place labels without overlaps

This commit is contained in:
Nils Schneider 2015-04-20 02:51:27 +02:00
commit db3d8fa795
2 changed files with 186 additions and 48 deletions

View file

@ -228,7 +228,7 @@ define(["map/clientlayer", "map/labelslayer",
clientLayer.addTo(map)
clientLayer.setZIndex(5)
var labelsLayer = new LabelsLayer({minZoom: 15})
var labelsLayer = new LabelsLayer()
labelsLayer.addTo(map)
labelsLayer.setZIndex(6)
@ -368,22 +368,14 @@ define(["map/clientlayer", "map/labelslayer",
groupLost = L.featureGroup(markersLost).addTo(map)
var rtreeOnlineAll = rbush(9)
var rtreeOnline = rbush(9)
var rtreeOffline = rbush(9)
var rtreeNew = rbush(9)
var rtreeLost = rbush(9)
rtreeOnlineAll.load(data.nodes.all.filter(online).filter(has_location).map(mapRTree))
rtreeOnline.load(nodesOnline.filter(has_location).map(mapRTree))
rtreeOffline.load(nodesOffline.filter(has_location).map(mapRTree))
rtreeNew.load(data.nodes.new.filter(has_location).map(mapRTree))
rtreeLost.load(data.nodes.lost.filter(has_location).map(mapRTree))
clientLayer.setData(rtreeOnlineAll)
labelsLayer.setData({online: rtreeOnline,
offline: rtreeOffline,
new: rtreeNew,
lost: rtreeLost
labelsLayer.setData({online: nodesOnline.filter(has_location),
offline: nodesOffline.filter(has_location),
new: data.nodes.new.filter(has_location),
lost: data.nodes.lost.filter(has_location)
})
updateView(true)