Следующая функция JavaScript была взята из http://sg.openrice.com/js/en/sdmap.js (веб-страницы, содержащей этот внешний файл JS: 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);
}
}
После выполнения скрипта, функция используется для кластера перекрывающихся маркеров. Я полностью понимаю яваскрипт синтаксиса, но я не понимаю, что делает эта строка:
return '' + Math.round(lat * 32768) + Math.round(lng * 32768);
Есть ли какие-либо специальные цели, для умножения на 32768? Может ли кто-нибудь объяснить мне?
Спасибо!
Спасибо, янки. Ваше объяснение очень ясное. – GosseMan