これを行ったことはありませんが、これについての私の考えは次のとおりです。
次のような 3 台の車の配列があるとします。
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;
}
}
}
ラベル クラスは label-element を配置する必要があります。
.label0 {
/* position north */
}
.label1 {
/* position west*/
}
.label2 {
/* position east*/
}
/* can go on with nw, ne, se and sw if needed*/
これは、このアプローチを示すフィドルです。