Uygulamamda google maps kullanıyorum ve lat/lon değerleriyle dolu bir veritabanına sahip bir web sunucum var. Onları harita üzerinde işaretlemek istiyorum, ama aynı zamanda birbirlerinden belirli bir piksel uzaklığı içinde olduklarında bunları bir araya getirmek istiyorum.Lat/lon'u piksellere dönüştür ve geri dön
clusters[];
while(count(points)) {
cluster[];
point = points.pop();
boundingbox = pixelsToBB(point, pixeldistance, zoomlevel);
query = "select * from database where lat > boundingbox.minlat
and lat < boundingbox.maxlat and lng > boundingbox.minlng
and lng < boundingbox.maxlng";
for (result in executedquery) {
cluster[] += result;
points.remove(result);
}
clusters[] += cluster;
}
pixelsToBB(point, distance, zoomlevel) {
center = convertXY(point, zoomlevel);
maxlng = convertToLng(center.X, distance, zoomlevel);
minlng = convertToLng(center.X, -distance, zoomlevel);
minlat = convertToLat(center.Y, -distance, zoomlevel);
maxlat = convertToLat(center.Y, distance, zoomlevel);
return boundingbox(maxlng, maxlat, minlng, minlat);
}
benim pixelsToBB işlevi ihtiyacı zoomlevel ne ilgisi olur:
ben veritabanından tüm puanları almak eğer anlamaya, ben bu (pseudocode) böyle bir şey yapmak mümkün olmalıdır? OR yerine convertToXY, convertToLng ve convertToLat ne yapmalı? Bunu doğru şekilde mi düşünüyorum yoksa bunu yapmak için daha iyi yollar var mı? Ne arayacağımı bile bilmiyorum, eğer daha önce sorulursa özür dilerim.