Internet Forum / Hilfen für Einsteiger in HPM Foren

Erweiterungen - Entwicklungen

Vom Mitgliederprofil in die Landkarte

 von Sabine , 18.05.2007 23:50

Hallo,
hab noch ein bischen gebastelt um User und Orte direkt in der Landkarte anzufahren, zum Beispiel aus dem Mitgliederprofil (da gab's auch mal nen Verbesserungsvorschlag im HPM Support dazu, aber den finde ich gerade nicht).

Folgendermaßen ist es gedacht:
Im Mitgliederprofil steht ein Link zur Landkarte <a href="geomap.php?username=sabine">In Landkarte anzeigen</a>, woraufhin die Karte angezeigt wird und auf den betroffenen User gezoomt wird. Das gleiche für einen besonderen Ort mit <a href="geomap.php?location=Hockenheimring">Hockenheimring</a>.
Beispiel: http://79444.homepagemodules.de/geomap.php?location=Hockenheimring

Um das zu ermöglichen muss folgendes ins Landkarten-Template eingefügt werden (wobei Veränderungen hier allerdings von HPM nicht empfohlen wird...)

im unteren Bereich des Templates, direkt unterhalb von <script type="text/javascript" defer="defer"> kommt
var select_username = '';
var select_location = '';
var select_point1 = 0;
var select_point2 = 0;

/** Wurde ein String übergeben? **/
var query = location.search;
if(query.length > 0) {
query = query.substring(1, query.length);
/** Ersetzen der Sonderzeichen **/
query = query.replace(/%26/,'&'); // Kaufm. Und
query = query.replace(/%20/,' '); // Leerzeichen
var elements = query.split('&');
for (i = 0; i < elements.length; i++) {
var assign = elements[i].split('=');
/** Username wurde übergeben **/
if(assign[0] == 'username') {
select_username = assign[1];
break;
}
/** Ort wurde übergeben **/
if(assign[0] == 'location') {
select_location = assign[1];
break;
}
}
}


Des weiteren kommt in die Funktion function createUser(data) VOR das return marker
if(select_username == data[2]) {
select_point1 = data[0];
select_point2 = data[1];
}

sowie in die Funktion function createOrt(data) VOR das return marker
if(select_location == data[2]) {
select_point1 = data[0];
select_point2 = data[1];
}


Zum Abschluss muss noch der Punkt angefahren werden. Dazu kommt folgender Code direkt vor das </script> am Ende
if(select_point1 > 0 && select_point2 > 0)
map.centerAndZoom(new GPoint(select_point1,select_point2),3);


Es gibt mit Sicherheit noch einige Schwachstellen: Vor allem Sonderzeichen könnten Probleme bereiten. Diese müssten ggf. vorher ersetzt werden, was bereits mit dem Leerzeichen gemacht wurde.

Grüße
Sabine
Sabine
Beiträge: 12
Registriert am: 29.04.2007

Themen Überblick

 





Powered by Forum Hosting  
Xobor Forum Software von Xobor
Einfach ein eigenes Forum erstellen