Welcome, Guest. Please login or register.
Did you miss your activation email?
May 26, 2012, 11:25:44 PM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155556 Posts in 21715 Topics by 7737 Members
Latest Member: gx-world
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: Google Map Api  (Read 428 times)
Ralph

Offline Offline

Posts: 48


« on: November 18, 2011, 01:47:44 PM »

Hallo zusammen,
ich hab mal wieder ein Problem ;-( Und zwar will ich meine Ergebnisse von mysql Abfragen aus einer Mitgliedertabelle in einer Google Map ausgeben. Das alles funktioniert auch soweit, außerhalb von Websitebaker.

Da ich ja nicht innerhalb einer Codesection auf den Header zugreifen kann, müsste ich ja den ganzen Funktionsaufruf der API in der Index vom Template unterbringen. Gibts da eine elegantere Lösung evtl. über ein Droplet? Weil sonst wird das Template irgenwann nicht mehr lesbar sein  wink

Und das zweite Problem: Die eigentliche Karte wird ja über den <body> Tag aufgerufen
Code:
<body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 400px; height: 400px"></div>
  </body>

Kann man im Template den Body-Tag einfach so erweitern und das DIV in der Codesection wo die Abfrage läut aufrufen?

Ich stehe irgendwie auf dem Schlauch, vieleich hat ja jemand Antworten oder einen Geistesblitz.

Gruß Ralph
Logged
instantflorian
Betatester
*
Offline Offline

Posts: 804



WWW
« Reply #1 on: November 18, 2011, 04:17:48 PM »

Hallo Ralph,

Du kannst auch im Headerbereich Deines Templates ein <?php page_content(99) ?> platzieren, in dem Du halt nur auf der betr. Seite einen Code2-Abschnitt platzierst. (Ersetze 99 mit irgend einer sinnvollen Zahl)

Beim body-Tag kannst Du so vorgehen:

Code:
<body <?php if (PAGE_ID==99) { ?>onload="load()" onunload="GUnload()" <?php ?>>

(Ersetze 99 durch die ID der Seite mit der Guglmap)

hth
_florian
Logged
Ralph

Offline Offline

Posts: 48


« Reply #2 on: November 19, 2011, 08:43:23 PM »

Hallo und Danke Florian,

die Hinweise werde ich wenn es dann mal klappt berücksichtigen. Bei Google wird die Nutzung der Api ja sehr gut beschrieben. Ich hatte mir nun gedacht die Erstellung des XML Files mit meiner mysql Abfrage in der Codesection zu erledigen, nach Google erfolgt das ja in einer seperaten .php, und bin kläglich gescheitert. Der Aufruf von

Code:
header("Content-type: text/xml");

// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML($row['firma']) . '" ';
  echo 'address="' . parseToXML($row['ort']) . '" ';
echo 'telefon="' . parseToXML($row['telefon']) . '" ';
  echo 'lat="' . $row['Lat'] . '" ';
  echo 'lng="' . $row['Lon'] . '" ';
  echo 'type="' . $row['plz'] . '" ';
  echo '/>';
}

bring kein Ergebnis, ich glaub es was mit "header("Content-type: text/xml");" innerhalb der Codesection zu tun, weil ausserhalb in einer seperaten Datei geht es ja den XML File zu erstellen.

Wenn ich wüsste wie ich meine mySQl Ergebnisse aus der Abfrage, innerhalb der Codesection, an die seperate Datei übergeben kann wäre das ja auch eine Möglichkeit.

Google erstellt das XML File so:

Code:
<?php 
require("phpsqlajax_dbinfo.php"); 
 
function 
parseToXML($htmlStr)  
{  
$xmlStr=str_replace('<','&lt;',$htmlStr);  
$xmlStr=str_replace('>','&gt;',$xmlStr);  
$xmlStr=str_replace('"','&quot;',$xmlStr);  
$xmlStr=str_replace("'",'&#38;#39;',$xmlStr);  
$xmlStr=str_replace("&",'&amp;',$xmlStr);  
return 
$xmlStr;  
}  
 
// Opens a connection to a MySQL server 
$connection=mysql_connect (localhost$username$password); 
if (!
$connection) { 
  die(
'Not connected : ' mysql_error()); 

 
// Set the active MySQL database 
$db_selected mysql_select_db($database$connection); 
if (!
$db_selected) { 
  die (
'Can\'t use db : ' mysql_error()); 

 
// Select all the rows in the markers table 
$query "SELECT * FROM markers WHERE 1"
$result mysql_query($query); 
if (!
$result) { 
  die(
'Invalid query: ' mysql_error()); 

 
header("Content-type: text/xml"); 
 
// Start XML file, echo parent node 
echo '<markers>'
 
// Iterate through the rows, printing XML nodes for each 
while ($row = @mysql_fetch_assoc($result)){ 
  
// ADD TO XML DOCUMENT NODE 
  
echo '<marker '
  echo 
'name="' parseToXML($row['name']) . '" '
  echo 
'address="' parseToXML($row['address']) . '" '
  echo 
'lat="' $row['lat'] . '" '
  echo 
'lng="' $row['lng'] . '" '
  echo 
'type="' $row['type'] . '" '
  echo 
'/>'

 
// End XML file 
echo '</markers>'
 
?>

Wie kann ich meine Abfrage (Ergebnisse) anstelle der Google while Schleife übergeben. Irgendwie stehe ich im Augenblick voll auf dem Schlauch embarassed
Logged
Ralph

Offline Offline

Posts: 48


« Reply #3 on: December 01, 2011, 05:29:23 PM »

Das mit der Google Maps Api Anbindung innerhalb von WB funktioniert jetzt.  Das mit dem Headeraufruf per page_content(x) bekomme ich ums verrecken nicht hin ;-(

Wie sieht die Problemstellung aus: Ich nutze auf zwei Seiten die API, auf einer werden alle Einträge einer Tabelle angezeigt und auf der anderen ist eine Umkreissuche integriert. Jetzt will aber Goggle verschiedene Javascript Funktionen für die Anwendungen im Header haben. An der Stelle hab ich gedacht nimm PHP
Code:
<? (if(Page_ID==20) { dann Google Haeder_1..(Javascript } sonst nimm den anderen
funktioniert nicht.

Mit page_content(xx) hab ich es auch probiert, klappt auch nicht.

Hat jemand eine Idee;-(
Gruß Ralph
Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!