ja so kanns gehen. mit dem richtigen werkzeug hat man das ergebnis in 30 Minuten :-)
Es gibt viele Möglichkeiten wie man seine google Map generiert.
Ich bin heute auf eine nette PHPClass gestoßen und hab gleich mal die verwendet.
Wieso?
1.) wieso das rad neu erfinden wenn es schon nützliches gibt
2.) PHP, Javascript, XML...ein Fehler und schon gibts Trouble. Da wir das ganze mit FB Graph verbinden ist natürlich die reine programmierung in php
einfacher und effizenter.
Was brauchen wir dafür?
1.) folgende PHPClass
BradWedell.com | Web Developer | Social Media Expert | Google Maps Enthusiast
2.) Facebook SDK (aktuelle Version, v3)
Step by Step:
1.) einbinden der vorhanden SDK und PHP Google Class
als nächstes bauen wir mal die Verbindung zu FB auf.PHP-Code:require '../facebook.php';
include('GoogleMap.php');
include('JSMin.php');
Da unsere Anwendung nur mit einer aktiven FB Verbindung funktioniert, ist diese Pflicht (d.h ohne Genemigung der Daten läuft die App dann auch nicht)
Wichtig ist das wir bei den Permissions user_hometown und friends_hometown haben.PHP-Code:$facebook = new Facebook(array(
'appId' => 'xxxx',
'secret' => 'xxxx',
'cookie' => true
));
$user_id = $facebook->getUser();
try {
$friends = $facebook->api('/me/friends?fields=name,hometown', 'GET');
} catch (FacebookApiException $e) {
$login_url = $facebook->getLoginUrl(array(
'scope' => "email,
publish_stream,
user_hometown,
friends_hometown,
user_location"));
echo "<script type='text/javascript'>top.location.href = '$login_url';</script>";
}
Jetzt gehts an die Google Map Class.
Zuerst inizialisieren wir sie und laden die Javascriptdateien herein.
Das wars schon. Aber ohne Punkte doch langweilig.PHP-Code:$MAP_OBJECT = new GoogleMapAPI();
$MAP_OBJECT->_minify_js = isset($_REQUEST["min"])?FALSE:TRUE;
Da wir bei Facebook keine Koordinaten haben sondern Adressen, müssen wir das ganze Georeferenzieren. Bevor jetzt viele sagen "hä???" keine Angst. Google ist hier sehr freundlich und stellt uns eine Funktion zur Verfügung mit der man normal ein XML oder JSON Object zurück erhalten würde. Das schöne an der PHP Class von Brad Wedell ist, mit einem Methodenaufruf wird alles erledigt. Also zeichnen wir mal unsere Pins:
Da wir nicht 1 sondern mehrere Punkte benötigen lassen wir einfach den generieren Array mittels foreach-Schleife durchlaufen.PHP-Code:$MAP_OBJECT->addMarkerByAddress('adresse', 'titel', 'beschreibung');
WICHTIG: wir müssen User ohne Adresse herausfiltern, sonst gibt es einen Error und unsere App funktioniert nicht. Ich hab hier einfach überprüft ob ein Array-Index "hometown" vorhanden ist.
Somit haben wir uns zu FB verbunden, die Google Class geladen und die Punkte vorbereitet.PHP-Code:foreach ($friends['data'] as $data){
if(isset($data['hometown'])){
$MAP_OBJECT->addMarkerByAddress($data['hometown']['name'], $data['name'], $data['name'].'<br />'.$data['hometown']['name']);
}
}
gehts also an die Darstellung und auch hier bietet die PHP Class von Brad Wedell Methoden die wir nur mehr aufrufen müssen.
Lange rede kurzer Sinn, ich denke sie sind selbsterklärend
Fertig :-)PHP-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
<?=$MAP_OBJECT->getHeaderJS();?>
<?=$MAP_OBJECT->getMapJS();?>
</head>
<body>
<?=$MAP_OBJECT->printOnLoad();?>
<?=$MAP_OBJECT->printMap();?>
<?=$MAP_OBJECT->printSidebar();?>
</body>
</html>
Wer es mal testen möchte, ich hab das ganze mal hier laufen: http://facebook.brokenlink.at/brokenGoogleMap/
Achtung: natürlich gibt es einen kl. Nachteil. Da man die Infos von FB jedesmal neu holt und die Georeferenzierung jedesmal erneut sattfindet dauert das laden natürlich je mehr Freunde man hat. Hier sollte man überlegen das ganze zu Cachen.
Natürlich bietet die Google Map Class noch viel mehr, aber der Grundbaustein ist gelegt und wenn ihr wollt bauen wir hier darauf weiter :-)
ein Danke an altf4 der mit dieser Idee kam und ein großes Thanks an Brad Wedell (BradWedell.com | Web Developer | Social Media Expert | Google Maps Enthusiast) für diese super PHPClass.
Falls gewünscht können wir aber auch über die typische Javascript Funktionalitäten uns eine Map mal generieren.
Wer Rechtschreibfehler findet, darf sie behalten. Das Tutorial wurde frei aus dem Stehgreif geschrieben. Für Richtigkeit übernehm ich keine Haftung oder Schäden die entstehen könnten übernehm ich keine Haftnung.
Wem es gefällt, würde mich über ein "like" freuen :-)


2Likes
LinkBack URL
About LinkBacks






Zitieren
Themenstarter

Lesezeichen