contenido Modul: Google Maps mit DB-Anbindung und Geocoding

Im Shop Forum Suchmaschinen-Optimierung finden Sie Informationen und Tipps rund um FTP-Tools, XAMPP, interaktive Berater und andere Suchmaschinen-Dienste.


Moderator: seo-beratung

contenido Modul: Google Maps mit DB-Anbindung und Geocoding

Beitragvon seo-beratung » 27.01.07

Ich möchte auch mal ein Modul vorweisen können. Mir ist zwar "tommo" zuvor gekommen, aber ich poste mein Google Maps Modul dennoch, da es etwas andere Möglichkeiten aufzeigt. Zumindest spar ich mir dann die Grundinstallation von Google Maps, da er sie sehr gut erklärt.

Zu sehen ist das Ergebnis unter www.kleinaitingen.com und einem Klick auf einen Firmenamen. Die Kontaktdaten werden dann in der Google Maps dargestellt. Vielleicht hat der ein oder andere noch tolle Ideen das ganze zu erweitern, wäre toll!

Im Input-Modul nutzen wir die CMS_VALUE[99], um auf einfache Art und Weise den Ort mit einem Namen z.B. "Kleinaitingen" vorzubelegen.

INPUT-MODUL
Code: Alles auswählen
?><?php
/*****************************************************
* CONTENIDO MODUL INPUT - FIRMENLISTE MIT GOOGLE MAPS
*
* Modulname  :  Firmenliste inkl. Google Maps
* Author(s)  :  Wolfgang Kundler <kundler>
* Copyright  :  www.onlineshop-handbuch.de
* Created    :  2006-12-03
*****************************************************/
?>
   <table>
      <tr>
         <td><php></td>
         <td><input></td>
      </tr>
   </table>
<?php

In unserer Datenbank haben wir zum Teil LAT und LON hinterlegt, um das Ziel genau zu treffen, ansonsten werden mit get_lat_long die Geocoding-Daten interpoliert. Daher kann es sein, dass man das ein oder andere Haus nicht wirklich genau trifft.

Die Zahl "17" bei "map.setCenter(new GLatLng(<echo>), 17, G_SATELLITE_MAP);" stellt den Zoomfaktor dar. Ist in der Kartendarstellung nichts sichtbar, den Wert verkleinern.

$row[0] = firmenid
$row[1] = firma
$row[2] = name
$row[3] = anschrift
$row[4] = plz
$row[5] = ort
$row[6] = lat
$row[7] = lon
$row[8] = fon
$row[9] = fax
$row[10] = mobil
$row[11] = email
$row[12] = homepage
$row[13] = branche
$row[14] = memo

OUTPUT-MODUL
Code: Alles auswählen
<?php
/*****************************************************
* CONTENIDO MODUL OUTPUT - FIRMENLISTE MIT GOOGLE MAPS
*
* Modulname  :  Firmenliste inkl. Google Maps
* Author(s)  :  Wolfgang Kundler <kundler>
* Copyright  :  www.onlineshop-handbuch.de
* Created    :  2006-12-03
*****************************************************/

      $host=localhost;
      $dbname='hierdatenbanknameeintragen';
      $user='hierdatenbankusereintragen';
      $pwd='hierdatenbankpassworteintragen';
     
      $gemeinde = $_GET['Gemeinde'];
      $idart = $_GET['idart'];
      $idcat = $_GET['idcat'];
      $firmenid = $_GET['firmenid'];
      $lat = $_GET['lat'];
      $lon = $_GET['lon'];





if(isset($firmenid))
   {
      if($lon==0)
         {
            echo"Für dieses Unternehmen sind leider keine genauen Geocoding-Daten hinterlegt! ";
            echo"Wir hinterlegen für Sie auch kostenlos einen längeren HTML-Text zu Ihrem Unternehmen. ";
            echo"Falls Sie wünschen, können Sie uns diese Information (und auch Geocoding-Koordinaten) gerne mitteilen.<br><br>";
            echo"Öffnen Sie dazu einfach per Mausklick unser <a>Anmeldeformular</a>.";
         }
      Googlemaps($firmenid, $lat, $lon);
   }
else
   {
    $gemeinde=CMS_VALUE[99];
    if($sortierung=="") {$sortierung="branche";};
    Firmenliste($gemeinde,$sortierung);
   }




   // Datenbank-Verbindung herstellen
   function verbinden()
   {
      global $host;
      global $dbname;
      global $user;
      global $pwd;

      $db=mysql_connect($host, $user, $pwd) or die ("Keine Verbindung!");

      $select=mysql_select_db($dbname,$db);
      return $db;
   }




   // Geocoding-Daten einholen anhand der Adresse (= Strasse PLZ Ort)
   function get_lat_long($q)
   {
      global $lat;
      global $lon;
     
      $q = urlencode($q);
      $gm = fopen('http://maps.google.com/maps?q=' . str_replace('','+',$q) . '&output=js','r');
      $tmp = @fread($gm,30000);
      fclose($gm);
      $pos=strpos($tmp,"center");
      $wert=substr($tmp,$pos,40);
      $lat=substr($wert,14,9);
      $lon=substr($wert,29,9);
   }




   // Darstellung der Google Map inkl. aller Kontaktdaten aus der Datenbank
   function Googlemaps($firmenid, $lat, $lon)
   {
     global $lat;
     global $lon;

     $db=verbinden();
     $sql="SELECT * FROM con_firmenverzeichnis WHERE firmenid='$firmenid'";
     $rs1=mysql_query($sql,$db);
     $row=mysql_fetch_row($rs1);
     
     if($row[6]>0.1)
        {
           // Die genauen Geodaten liegen in unserer Datenbank!
           $lat=$row[6];
           $lon=$row[7];
        }
     else
        {
           // Die Geodaten werden interpoliert dargestellt!
           $tmp = get_lat_long("$row[3], $row[4] $row[5]");
        }

      ?>
         <h1><echo></h1>
         <h2><echo></h2>
         <p><echo></p>
         <div></div>
         <script>
           //<![CDATA[
             function load()
               {
                 if (GBrowserIsCompatible())
                    {
                       var map = new GMap2(document.getElementById("map"));
                       map.addControl(new GSmallMapControl());


                       map.addControl(new GMapTypeControl());
                       map.setCenter(new GLatLng(<echo>), 17, G_SATELLITE_MAP);
                       // Our info window content
                       var infoTabs = [
                          new GInfoWindowTab("Anschrift", "</b>"),
                          new GInfoWindowTab("Kontakt", "</b>"),
                          new GInfoWindowTab("Geocoding", "</b>")
                       ];
                       // Place a marker in the center of the map and open the info window automatically
                       var marker = new GMarker(map.getCenter());
                       GEvent.addListener(marker, "click", function() {
                          marker.openInfoWindowTabsHtml(infoTabs);
                          });
                       map.addOverlay(marker);
                       marker.openInfoWindowTabsHtml(infoTabs);
                    }

               }
           //]]>
         </script>
      </Ausgabe>
         <div>
            <table>
               <thead>
                  <tr>
                     <th>&nbsp;<a>Branche</a><img>&nbsp;</th>
                     <th>&nbsp;<a>Firma</a><img>&nbsp;</th>
                     <th>&nbsp;<a>Anschrift</a><img>&nbsp;</th>
                  </tr>
               </thead>
               <tfoot><tr><td></td><td></td><tr></tfoot>
               <tbody>

               </td>

         </div>
      <?
   }
?>

Ist sicher nicht hunderprozentig optimal programmiert, aber zumindest lauffähig.

Gruss aus Bayern
Benutzeravatar
seo-beratung
Moderator
 
Beiträge: 367
Registriert: 03/06
Wohnort: Kleinaitingen


Ähnliche Shop Forum Themen passend zu "contenido Modul: Google Maps mit DB-Anbindung und Geocoding"

Zurück zu Tools, Software und andere Dienste

Wer ist online im Shop Forum?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste