次のJavaScript関数は、http://sg.openrice.com/js/en/sdmap.js
(この外部JSファイルを含むWebページ:http://sg.openrice.com/singapore/restaurant/advancesearch)から取得されました。 htm?mapType = 1):
function showAllMarkers(data, options) {
var markerGroups = {};
var getcs = function (lat, lng) {
return '' + Math.round(lat * 32768) + Math.round(lng * 32768);
}
for (var i = 0; i < data.length; i++) {
if (markerList[data[i].id]) continue;
if (!(data[i].lat == 0 && data[i]['long'] == 0)) {
var xy = getcs(data[i].lat, data[i]['long']);
if (markerGroups[xy]) {
markerGroups[xy].push(data[i]);
} else {
markerGroups[xy] = [data[i]];
}
}
}
for (var i in markerGroups) {
updateGroupMarker(markerGroups[i], options);
}
}
スクリプトの実行後、この関数を使用して、重複するマーカーをクラスター化します。私はjavascript構文を完全に理解していますが、この行が何をするのか理解していません。
return '' + Math.round(lat * 32768) + Math.round(lng * 32768);
32768を掛ける特別な目的はありますか?誰かが私に説明できますか?
ありがとう!