Google Maps APIでマーカーの重なりを解消したい

YY3ai2ui24 276views 更新:2015年10月14日

緯度で並び替えれば、とりあえず問題ないですね。

// マーカーをつくって、latMapにいれる
var lat = 9120912091;//適当です。
var lng = 8328733289;// 適当です。

var marker = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(lat, lng),
    icon: number,
    zIndex: 0
});

latMap[latMap.lenght] = {'lat':lat, 'marker':marker};

// 緯度で並び替える用
latMap[latMap.length] = {'lat' : lat, 'marker' : marker};


//↑をループなどでたくさんのマーカーをつくる



// 緯度並び替えの実装
latMap.sort(function(a,b){
    if(a.lat<b.lat) return 1;
    if(a.lat > b.lat) return -1;
    return 0;
});
for (var z = 0; z < latMap.length; z++){
    latMap[z].marker.setZIndex(z);
}


もし、経度でもやりたいようならば、latMapにlngも記録しておいて、

latMap.sort(function(a,b){
    if(a.lat<b.lat) return 1;
    if(a.lat > b.lat) return -1;
    if(a.lng<b.lng) return 1;
    if(a.lng > b.lng) return -1;
    return 0;
});


ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません