[Oracle] PLZ-Gebiet aus GEODB auslesen

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

  • [Oracle] PLZ-Gebiet aus GEODB auslesen

    Hi Jungs,

    vielleicht könnt Ihr mir helfen. Ich habe eine Tabelle, dort sind PLZ und Geodaten drin (OpenGeoDB). Nun nöchte ich eine Abfrage machen, welche Postleitzahlen innerhalb eines bestimmten PLZ-Gebietes liegen anhand einer KM-Angabe. Vielleicht habt Ihr eine Idee wie ich den SQL-Befehl stricken kann...

    THX

  • #2
    und wie sieht die Tabellenstruktur aus?

    Kommentar


    • #3
      5647;DE;SN;Chemnitz;Mittlerer Erzgebirgskreis;-;Marienberg;13.1980228446334;50.6135223477325;09496

      Hier mal ein CSV-Ausschnitt.
      Und so nennen wir einfach mal die Spalten
      1. ID
      2. Land
      3. Bundesland
      4. Landeshauptstadt
      4. Unwichtig
      5. Kreis,
      6. Stadt
      7. X-Koordinate
      8. Y-Koordinate
      9. PLZ

      Ich hoffe Ihr habt das verstanden

      Kommentar


      • #4
        was meinst du mit KM-Angabe?

        Kommentar


        • #5
          In einem Umkreis von X Kilometer, also der Radius.

          Kommentar


          • #6
            und du weisst, wie man die XY-Koordinaten dafür anwendest? d.h. ist kein mathematisches Problem, oder doch?

            Kommentar


            • #7
              Das ist es ja, ich hab nicht wirklich ein plan wie ich es machen soll, bzw wie ich das umrechnen soll.

              Kommentar


              • #8
                hm ... wozu hast du dann die Tabelle, wenn du nichts mit den Daten anfangen kannst

                Mach dich mal schlau über Längen- und Breitengradangaben, denn ohne zu wissen, was diese XY-Werte sind, kannst du mit der Tabelle nicht wirklich was machen. Tipp: 1 grad ~ 111 km

                Kommentar


                • #9
                  Problem gelöst... falls es jemand wissen will:

                  $sel = "SELECT PLZ FROM PLZGEBIETE2 WHERE (ACOS((SIN($breite/'57,29578')*SIN(GEO2/'57,29578'))
                  + (COS($breite/'57,29578')*COS(GEO2/'57,29578')*COS(GEO1/'57,29578'-$laenge/'57,29578'))) * 6371) < 50 ";

                  wobei breite und länger vorher ermiitelt werden muss.

                  Kommentar

                  Lädt...
                  X