Convertir lat / lon en pixels et en arrière
Je suis en utilisant google maps dans ma demande, et j'ai un serveur avec un databse rempli avec lat/lon valeurs. Je veux marquer sur la carte, mais je veux aussi les regrouper ensemble si elles sont dans un certain pixel-distance de eachother.
Je me dis que si j'ai récupérer tous mes points à partir de la base de données, je devrais être capable de faire quelque chose comme ceci (pseudo-code):
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);
}
Quelle serait ma pixelsToBB besoin de fonction pour faire avec la zoomlevel? OU plutôt quelle serait ma convertToXY, convertToLng et convertToLat besoin de le faire? Je pense-ce la bonne façon, ou est-il de meilleures façons de le faire?
Je ne suis même pas sûr de ce que pour la recherche, donc si il a été demandé avant, je suis désolé.
source d'informationauteur AmITheRWord
Vous devez vous connecter pour publier un commentaire.
À l'aide de l'API Google Maps v3:
Il y a un exemple en JavaScript pour ce faire sur cette page dans le cadre de la documentation de l'API Google Maps. Gardez à l'esprit que vous devez regarder le source de la page pour le voir. C'est pas une vraie page de documentation mais plutôt un exemple.