PLZ Geokoordinaten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #91
    plz / geokooridnaten grafisch anzeigen

    hallo zusammen,

    ich habe eine kleine datebank (name, plz, ort, website) und möchte die einzelnen user nun mit punkten grafisch auf einer deutschlandkarte anzeigen lassen.

    ein script dafür selbst zu erstellen kann ich nicht, aber vielleicht kann mir jemand helfen eins zu finden was ich an meine bedürfnisse anpassen kann?

    grz,
    josch

    Kommentar


    • #92
      Würde bedeuten die Koordinaten von ca. 8200 Punkte für dein Bild zu definieren und den PLZs zuzuordnen - soviel PLZ gibts nämlich ungefähr.
      Oder anhand der Geodaten einen Bezug auf die Größenverhältnisse des Bildes umrechnen.

      Man könnte jedoch Postleitzahlengruppen bilden, denn je nach Größe des Bildes bedeckt ja so ein Punkt ganze Städte, die ja mehrere PLZs haben können.

      Was meint ihr anderen Experten dazu?

      Grüße,
      Andi

      Kommentar


      • #93
        Re: plz / geokooridnaten grafisch anzeigen

        Original geschrieben von josch
        hallo zusammen,
        [...]vielleicht kann mir jemand helfen eins zu finden was ich an meine bedürfnisse anpassen kann?
        Schau' mal hier: Map-Hack für das vBulletin-Board

        Das Skript ist aber wohl nur vb-Lizenznehmern zugänglich. Vielleicht hat ja noch jemand anders ein anderes, öffentlich zugängliches Skript.

        Gruß,
        Chriss

        Kommentar


        • #94
          Hallo,

          ich hab heute das Beispiel von iilt (eine Seite vorher) versucht auszuführen aber irgendwie bekomm ich einen Fehler. Hab jetzt rausgefunden, das meine DB Abfrage:
          Code:
          $Abfrage1=mysql_query("SELECT ort, plz,(6367.41*SQRT(2*(1-cos(RADIANS(breite))*cos(".$breite.")*(sin(RADIANS(laenge))*
          sin(".$laenge.")+cos(RADIANS(laenge))*cos(".$laenge."))-sin(RADIANS(breite))*sin(".$breite.")))) AS Distance FROM geodb_locationsWHERE 6367.41*
          SQRT(2*(1-cos(RADIANS(breite))*cos(".$breite.")*(sin(RADIANS(laenge))*sin(".$laenge.")+cos(RADIANS(laenge))*
          cos(".$laenge."))-sin(RADIANS(breite))*sin(".$breite."))) <= ".$umkreis." ORDER BY Distance");
          False zurück liefert. Hab sie genauso übernommen wie iilt geschrieben hat.

          War hab ich falsch gemacht? Hier nochmal mein gesammter Code:

          Code:
          <?
          include("config.php");
          
          #Verbindung zur Datenbank aufbauen
          $db = mysql_connect($Servername,  $Benutzer, $Passwort);
          
          #Datenbankname zuweisen
          mysql_select_db($Datenbank);
          
          $plz = $_POST["PLZ"];
          $umkreis = $_POST["UMKR"]; 
          
          $Laenge_breite=mysql_query("SELECT laenge, breite FROM geodb_locations WHERE plz=$plz");
          $Laenge_breitearray=mysql_fetch_array($Laenge_breite);
          
          $laenge=$Laenge_breitearray[0] / 180 * M_PI; // Umrechnung von GRAD IN RAD 
          $breite=$Laenge_breitearray[1]/ 180 * M_PI; // Umrechnung von GRAD IN RAD 
          
          $Abfrage1=mysql_query("SELECT ort, plz,(6367.41*SQRT(2*(1-cos(RADIANS(breite))*cos(".$breite.")*(sin(RADIANS(laenge))*
          sin(".$laenge.")+cos(RADIANS(laenge))*cos(".$laenge."))-sin(RADIANS(breite))*sin(".$breite.")))) AS Distance FROM geodb_locationsWHERE 6367.41*
          SQRT(2*(1-cos(RADIANS(breite))*cos(".$breite.")*(sin(RADIANS(laenge))*sin(".$laenge.")+cos(RADIANS(laenge))*
          cos(".$laenge."))-sin(RADIANS(breite))*sin(".$breite."))) <= ".$umkreis." ORDER BY Distance");
          
          $Ergebnis2=mysql_fetch_array($Abfrage1);
          $Ergebnis3=mysql_num_rows($Abfrage1);
          echo "<table border=1><tr>";
          echo "Anzahl: $Ergebnis3";
          
          for ($i=0;$i<$Ergebnis3;$i++)
          {
          while ($Ergebnis2=mysql_fetch_array($Abfrage1,MYSQL_ASSOC))
          {
          echo "<tr><td>";
          echo implode("<td>",$Ergebnis2);
          echo "</tr>";
          }
          }
          ?>

          Kommentar


          • #95
            Lösung und Frage zur Verknüpfung

            Hi Feuerbowle,

            denke mal das liegt nur daran, dass Du hier in der Abfrage n Leerzeichen vergessen hast "FROM geodb_locationsWHERE" .

            Zu der bereits häufiger aufgetauchten Frage nach einer Quelle, die nicht nur alle Orte mit dazugehörigen PLZ, sondern alle PLZ als separate Dtensätze beinhaltet bietet die opengeodb auch ne Quelle: Hier der Link

            Allerdings hab ich mal ne andere Frage, als MySQL Newbie:

            Wie verknüpfe ich die obige Anfrage am besten mit meiner separaten Mitgliedertabelle (PLZ vorhanden). Ich vermute das klappt über nen JOIN, bin allerdings damit noch nicht so vertraut. Anforderung ist : Suche alle Mitglieder, aus der Tabelle tab_mitglieder, die nicht mehr als 100 km von PLZ 12345 entfernt sind, mit Angabe der Entfernung, aufsteigend nach Entfernung sortiert.

            Wär dankbar für nen Tip. Desweiteren bin ich auch an der oben genannten Kartendarstellung der (online-)Mitglieder interessiert (oben als Map-Hack verlinkt). Vielleicht kann mir auch dort jemand weiterhelfen.

            Many thanx

            Friedward

            Kommentar


            • #96
              Hallo an alle,
              ich finde es super dass das Thema hier so ausführlich diskutiert wird. Das hilft mir als php und sql Anfänger schon sehr weiter.

              Jedoch wurde bisher eigentlich immer über die Umkreissuche diskutiert.
              Ich würde gerne eine Abfrage schreiben, die die Route zwischen zwei Orten ausgibt (auf Basis von opengeodb).
              Leider weiß ich als Anfänger nicht wie aufwändig eine solche Abfrage ist.
              Die Abfrage soll enthalten:
              - Ort A (z.B. Kölln)
              - Ort B (z.B. Dortmund)
              - maximale Anzahl an Zwischenstopps (z.B. 10)
              - maximale Entfernung zwischen den Zwischenstopps ( z.B. 10 km)
              ( - nur Orte in unterschiedlichen Landkreisen anfahren)

              das Ganze ist für ein Browser Spiel gedacht, das auf opgengeodb basiert. Damit könnte man sich Routen zwischen zwei Orten berechnen lassen, wobei man immer nur Orte in unterschiedlichen Landkreisen anfährt)

              Ist sowas möglich bzw wie aufwändig ist es sowas zu schreiben?

              Kommentar


              • #97
                Das kommt auf die Route an, die Du berechnen willst! Dir ist klar, daß Du mit opengeodb-Daten natürlich nur die Luftlinie zwischen zwei Punkten berechnen kannst.

                Mit der Einschränkung ist das von Dir beschriebene Szenario schon machbar - es ist nur ein Arsch voll Arbeit! Vor allem das mit den Zwischenstopps in unterschiedlichen Landkreisen. Als Anfänger würde ich davon vorerst die Finger lassen.

                Kommentar


                • #98
                  Das es nur Luftlinie ist ist klar das macht auch nichts.

                  Die Route die berechnet werden soll, ist gar nicht so wichtig, die Orte lassen sich ja leicht austauschen.

                  Naja mit den Zwischenstops: Wenn man die maximale Entfernung zwischen den Orten groß genug wählt z.B. 25 km, dann dürfte sich doch immer ein Ort finden der in einem neuen Landkreis liegt oder?

                  Wenn du sagst dass das ein Haufen Arbeit ist, dann heißt das wohl dass sich sowas nicht in eine einzige SQL Abfrage packen lässt?

                  Kommentar


                  • #99
                    Original geschrieben von 0001001
                    Naja mit den Zwischenstops: Wenn man die maximale Entfernung zwischen den Orten groß genug wählt z.B. 25 km, dann dürfte sich doch immer ein Ort finden der in einem neuen Landkreis liegt oder?
                    Nicht unbedingt. Hier in BW gibt es Landkreise, die sich über 50 km erstrecken....

                    Wenn du sagst dass das ein Haufen Arbeit ist, dann heißt das wohl dass sich sowas nicht in eine einzige SQL Abfrage packen lässt?
                    Auf keinen Fall. Zumindest nicht für uns Normalsterbliche. Und wahrscheinlich nichtmal für die mySQL-Götter hier im Forum. Da mußt Du mit PHP zwischenfummeln.

                    Kommentar


                    • OpenDb nur für Hessen?

                      Hallo,

                      ihr emsigen Ameisen, die alles zusammentragen und umwandeln was im laufe der Zeit daher kommt was mir und anderen zugute kommt.
                      ....... ich habe sehr interessiert die Beiträge hier gelesen ..... mir raucht der Kopf schon kann alles garnicht aufeinmal verarbeiten... denn ich gebe es zu ich bin ein absolutes Newbie in Sachen php-Programmierung und möchte trotzdem folgendes realisieren:


                      Umkreissuche (...wie schon hier ausführlich behandelt, aber zur Zeit von mir nicht unmittelbar alles nachvollziehbar )

                      - nur für Hessen

                      - nach Branche
                      - PlZ-Eingabe
                      - Entfernungsberechnung

                      - sortierte Ausgabe (nach Alphabet oder einfach ohne speziellen Optionen ) ---> Branche, Personen, Entfernung

                      Meine erste Frage,... und ich werde wohl öfter hier etwas Feetback brauchen ist, ....

                      - wo bekomme ich die Geodaten nur für Hessen her??

                      Vielleicht ist es aber auch nur eine Einstellungsgeschichte in OpenGeoDB?

                      Bittte verzeiht mir hier die laienhafte Anfrage, aber ich versuche mich langsam an ds Thema heranzupirschen.

                      Besten Dank schon mal ijm voraus an diejenigen die sich für mich Zeit nehmen.

                      ~~~~~> Das Würmchen gräbt sich durch

                      Kommentar


                      • - wo bekomme ich die Geodaten nur für Hessen her??
                        musst du vermutlich aus der gesamtdb extrahieren.

                        Kommentar


                        • Dankeschön!

                          Hi Leute,

                          erst mal ein großes Dankeschön an alle die hier in diesem Board mitgewirkt haben!

                          Es hat zwar gedauert. Ich habe es jetzt aber mit Eurer Hilfe hinbekommen, die Einträge aus einer Kundenliste nach der Entfernung der PLZ anzeigen zu lassen.

                          Von den ganzen ZIP Dateien, die man aber von der opengeodb Seite herunterladen konnte, waren relativ viele unnötige Daten dabei, kaputte Dateien etc. Habe mir hier jetzt eine passende DB zusammengebastelt.

                          Wer von Euch jetzt nur eine reine Datenbank braucht, um Entfernungen zwischen PLZ zu berechnen (nicht mehr und nicht weniger), kann mir eine PN schicken, dann sende ich die SQL Datenbank gerne zu. Komprimiert hat sie auch nur 266 KB!

                          Meine Abfrage, um die Kundendaten aus der Tabelle kunden jetzt entsprechend anzuzeigen, sieht wie folgt aus. Ist eine Variation aus einer Abfrage, die hier im Forum zu finden war:

                          PHP-Code:
                          $query="

                          SELECT kunden.plz, kunden.name, geodaten.ort, geodaten.plz, geodaten.land,

                          (6367.41*SQRT(2*(1-cos(RADIANS(geodaten.breite))*cos("
                          .$breite.")*(sin(RADIANS(geodaten.laenge))*sin(".$laenge.")+cos(RADIANS(geodaten.laenge))*cos(".$laenge."))-sin(RADIANS(geodaten.breite))*sin(".$breite.")))) AS Distance

                          FROM geodaten, kunden

                          WHERE 6367.41*SQRT(2*(1-cos(RADIANS(geodaten.breite))*cos("
                          .$breite.")*(sin(RADIANS(geodaten.laenge))* sin(".$laenge.")+cos(RADIANS(geodaten.laenge))*cos(".$laenge."))-sin(RADIANS(geodaten.breite))* sin(".$breite."))) <= ".$umkreis."

                          AND kunden.plz=geodaten.plz

                          ORDER BY Distance"

                          Grüße aus Bayern!
                          Zuletzt geändert von Cowboy74; 09.04.2006, 12:34.

                          Kommentar


                          • Hi leute,
                            also ich bin schon lange auf der suche nach so einem script.
                            ich brauche sowas, welches die 2 plz's aus der datenbank ausliest und die entfernung berechnet. wie würde soetwas aussehen?

                            danke

                            gruß
                            sk4r
                            Höre nie auf zu versuchen. Versuche nicht aufzuhören.

                            Kommentar


                            • ich habe die entfernungsberechnung auf der seite www.fontanus.de realisiert. wenn jemand interesse an dem script hat, kann er sich gerne melden.

                              Kommentar


                              • Hi josch, da ich dir aus welchem grund auch immer keine pm schicken kann, poste ich dir hier meine email addy und hoffe, dass du mir das script schickst.. vielen dank

                                sc00b@web.de

                                ^^
                                das sind keine "OOOO's" sondern "Nuller"
                                Höre nie auf zu versuchen. Versuche nicht aufzuhören.

                                Kommentar

                                Lädt...
                                X