Konvertieren von Long / Lat in Pixel x / y bei gegebener Zoomstufe

Ich versuche, eine Seite in ASP.NET zu entwickeln, die als Kachelserver für eine Google Map fungiert

Es wird eine Sammlung von Breiten- / Längengradpunkten aus der Datenbank gezogen und diese dann als kleine rote Punkte auf einem transparenten Hintergrund mit einer gegebenen Zoomstufe (Standard: 15) gerendert.

Das Ergebnis wird dann als GIF-Bild zurückgegeben.

Wurden Algorithmen oder Bibliotheken entwickelt, mit denen ich diesen Satz von Breiten- / Längengraden in einen Satz von 2D-Pixelkoordinaten umwandeln kann, wenn eine Zoomstufe vorgegeben ist?

(Da dies alles serverseitig erfolgt, kann ich die Google Maps-API nicht verwenden.)

Update: In Perl wurde ein Codebeispiel gefunden, das etwas ähnliches ausführt:

http://blog.barros.ws/2009/03/06/convert-lat-lng-and-zoom-values-to-pixel-xy-on-a-map/

Das Problem ist, dass ich Perl nicht kenne und nicht wirklich die Zeit habe, ein Buch aufzuschlagen und es zu lernen.

Kann mir jemand helfen zu entschlüsseln, was in dieser Funktion vor sich geht?

sub Google_Coord_to_Pix
{
    my $value   = shift ;
    my $lat = shift ;
    my $lng = shift ;
    my @d       = ( ) ; 
    my $e       = 0 ;

    $d[1] = sprintf("%0.0f", $value{'bmO'} + $lng * $value{'pixLngDeg'} ) ;

    $e = sin($lat * $value{'Wa'}) ;

    if( $e > 0.99999 )
    {
        $e = 0.99999 ;
    }

    if( $e < -0.99999 )
    {
        $e = -0.99999 ;
    }

    $d[0] = sprintf("%0.0f", $value{'bmO'} + 0.5 * log((1 + $e) / (1 - $e)) * (-1) * $value{'pixLngRad'} ) ;

    return (@d) ;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage