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