Aus vielen Internetforen kennt man Mitgliederkarten, in denen zu sehen ist, wo welches Mitglied zu Hause ist. So kann man auf einen Blick erkennen, wer in der Nähe wohnt.
Für das dotnet-forum.de setze ich den CommunityServer ein, eine hervorragende Community Plattform mit sehr vielen netten Features.
Leider gibt es keine "Membermap".
Auf externe Dienste, wie zum Beispiel Frappr, wollte ich nicht zurückgreifen, weil sie kaum konfigurierbar und meiner Meinung nach, auch nicht schön sind.
Solch eine Karte kann mit bestehenden APIs relativ schnell entwickelt werden. Ich habe mich als Grundlage für die Microsoft Virtual Earth API entschieden. Schnell musste ich allerdings feststellen, dass die Microsoft Klassen und Methoden viel zu langsam sind um einige hundert User auf der Karte darzustellen. Dies liegt daran, dass die komplette Logik auf dem Client läuft. Wenn z.B. 200 User dargestellt werden sollen, muss das clientseitige JavaScript bei jedem Seitenaufbau alle geografischen Koordinaten bei Microsoft abfragen. Das dauert bei 200 Usern und einer schnellen Internetverbindung etwas über 20 Sekunden.
Ich habe mich entschieden, die geografischen Koordinaten auf dem Server in der Datenbank zu speichern. Dank des ASP.NET Ajax Frameworks ist es nicht sehr schwer, die Daten im Hintergrund vom Server zu laden.
Wenn ein User seinen Wohnort im Profil ändert oder ein neuer User hinzukommt, holt der Webserver sich nur einmal die neuen Geodaten.
Ich hab zwei weitere Gimmicks implementiert: Jeder User wird mit einem farbigen Pushpin angezeigt Dabei werden User, die gerade online sind, mit einem grünen Pin gezeigt. Der eigene Pushpin ist rot, alle anderen sind blau.
Die benötigten Daten frage ich mit Hilfe der CommunityServer API ab.
Weiterhin habe ich eine Umkreissuche implementiert, auch hier ist wieder die komplette Logik auf dem Server.
Die Karte ist ab sofort online und ist für jedes registrierte Mitglied des dotnet-forum.de nutzbar.
Es können natürlich nur Mitglieder angezeigt werden, die auch einen Wohnort im eigenen Profil angegeben haben.
Die Umkreissuche
Mouseover Effekt