मैं अपने एप्लिकेशन में Google मानचित्र का उपयोग कर रहा हूं, और मेरे पास लेट/लॉन मानों से भरे डेटाबेस के साथ एक वेबसर्वर है। मैं उन्हें मानचित्र पर चिह्नित करना चाहता हूं, लेकिन अगर वे एक दूसरे की निश्चित पिक्सेल-दूरी के भीतर हैं तो मैं उन्हें एक साथ क्लस्टर करना चाहता हूं।लेट/लॉन को पिक्सल में कनवर्ट करें और
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);
}
zoomlevel साथ क्या करना है मेरी pixelsToBB समारोह की आवश्यकता होगी:
मैं समझ अगर मैं डेटाबेस से मेरी सभी बिंदुओं को पुनः प्राप्त है, मैं इस (स्यूडोकोड) की तरह कुछ करने के लिए सक्षम होना चाहिए? या बल्कि मेरा कन्वर्ट टॉक्सएक्स, कन्वर्ट टोलिंग और कन्वर्ट टोलैट को क्या करना होगा? क्या मैं इस बारे में सही तरीके से सोच रहा हूं, या क्या ऐसा करने के कोई बेहतर तरीके हैं? मुझे यह भी सुनिश्चित नहीं है कि क्या खोजना है, इसलिए यदि मुझे खेद है तो इससे पहले पूछा गया है।