Usermap (z.B. mit AtlasMod) in Google Earth darstellen!
Verfasst: 25.12.2005 23:09
Hi
ich hab in meinem Forum (http://forum.xufo.net) den Atlas-Mod von jonemo eingebaut, und eine sehr schicke Zusatzfunktion drangehängt: die User-Koordinaten hat man ja in der Datenbank, das KML-Dateiformat von Google Earth ist Klartext (XML) und dokumentiert... also warum nicht ein PHP-Skript schreiben, das beides zusammenfügt?
So schaut das bei mir (als PHP-Anfänger
) aus:
Die Datei wird dann als irgendwas.php im Forums-Root gespeichert und in der Navi-Leiste (oder gleich oberhalb des Atlas-Mod-Applets) verlinkt als "irgendwas.php?.kml" damit der Browser es beim Draufklicken gleich an Google Earth weiterreicht. Umlaute in Usernamen und Ortsbezeichnungen werden maskiert und in GE korrekt dargestellt, und man kann kleine, quadratische, teil-transparente GIF- oder PNG-Bildchen als Icons verwenden, die zur jeweiligen Community passen.
Bei Bedarf kann man in die PHP-Datei weitere Icon-Styles eintragen und einige feste Orte (bei mir ein Laden für Ersatzteile und ein Treffpunkt für Events) dazuschreiben und mit ebendiesen anderen Styles versenen.
Wenn dann ein Besucher auf den Link klickt, öffnet sich Google Earth automatisch (oder bekommt den Fokus, wenns schon läuft) und scrollt/zoomt weich rüber in den bei <LookAt> angegebenen Bereich (im obigen Beispiel: Deutschland und Umgebung mit 30° Kameraneigung).
Ein Beispiel aus meiner Community gibts hier.
Seht Ihr da irgendwelche Sicherheitsrisiken? Oder habt Ihr Ideen zur Verbesserung, ohne daß gleich ein Riesenapparat draus wird?

ich hab in meinem Forum (http://forum.xufo.net) den Atlas-Mod von jonemo eingebaut, und eine sehr schicke Zusatzfunktion drangehängt: die User-Koordinaten hat man ja in der Datenbank, das KML-Dateiformat von Google Earth ist Klartext (XML) und dokumentiert... also warum nicht ein PHP-Skript schreiben, das beides zusammenfügt?
So schaut das bei mir (als PHP-Anfänger

Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$sql = "SELECT username, user_long, user_lat, user_from FROM phpbb_users WHERE NOT (user_long=0 AND user_lat=0)";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain users list', '', __LINE__, __FILE__, $sql);
}
header('Content-type: application/keyhole');
?>
<kml xmlns="http://earth.google.com/kml/2.0" encoding="ISO-8859-1">
<Document>
<LookAt>
<longitude>11</longitude>
<latitude>51</latitude>
<range>1400000</range>
<tilt>30</tilt>
<heading>0</heading>
</LookAt>
<description>(yourdomain.com) Community Members</description>
<Style id="myPM">
<IconStyle>
<Icon>
<href>http://(yourdomain.com/somewhere/icon.gif)</href>
</Icon>
</IconStyle>
</Style>
<?php
while ( $row = $db->sql_fetchrow($result) )
{
echo("<Placemark><name><![CDATA[".htmlentities($row['username'])."]]></name><description><![CDATA[".htmlentities($row['user_from'])."]]></description><styleUrl>#myPM</styleUrl>");
echo("<Point><coordinates>".$row['user_long'].",".$row['user_lat']."</coordinates></Point></Placemark>");
}
?>
</Document>
</kml>
Bei Bedarf kann man in die PHP-Datei weitere Icon-Styles eintragen und einige feste Orte (bei mir ein Laden für Ersatzteile und ein Treffpunkt für Events) dazuschreiben und mit ebendiesen anderen Styles versenen.
Wenn dann ein Besucher auf den Link klickt, öffnet sich Google Earth automatisch (oder bekommt den Fokus, wenns schon läuft) und scrollt/zoomt weich rüber in den bei <LookAt> angegebenen Bereich (im obigen Beispiel: Deutschland und Umgebung mit 30° Kameraneigung).
Ein Beispiel aus meiner Community gibts hier.
Seht Ihr da irgendwelche Sicherheitsrisiken? Oder habt Ihr Ideen zur Verbesserung, ohne daß gleich ein Riesenapparat draus wird?