从来没有这样做过,但这是我的想法:
假设您有一组这样的三辆汽车:
var cars=[{name:"car1",x:100,y:101},{name:"car2",x:99,y:101},{name:"car3",x:90,y:111}];
我将首先按位置对其进行排序:
cars.sort(sortfunction)
function sortfunction(a, b){
return a.x - b.x + a.y - b.y
}
然后,当您将汽车放在地图上时,请查看之前的位置。如果它在附近,请添加标签类:
var label=0;
for(var i=0; i<cars.length; i++) {
if(i>=1) {
if(Math.abs(cars[i-1].x-cars[i].x+cars[i-1].y-cars[i].y)<10) {
//Add your element with a label class $("<div class='car label"+label+"' style='...'>")
console.log(cars[i-1].name+" is to near to "+cars[i].name);
label++;
}
else {
//Add your element normal $("<div class='car' style='...'>")
label=0;
}
}
}
您的标签类应定位标签元素:
.label0 {
/* position north */
}
.label1 {
/* position west*/
}
.label2 {
/* position east*/
}
/* can go on with nw, ne, se and sw if needed*/
这是一个显示这种方法的小提琴。