Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Umkreissuche

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Umkreissuche

    Ich google und versuche schon seit Stunden, eine umkreissuche mit mysql abzufragen.
    Ich habe eine Tabelle 'tbl_staedte' mit PLZ und Koordinaten.
    PHP-Code:
    ID         plz          Stadt         b               l
     1         79280        Au            47.95689        7.82978
     2         79424        Auggen        47.78709        7.59604
    ... 
    Wie kann ich eine Abfrage machen, die im Umkreis (ggfl. im Quatrat) von zB. Radius = 5 km zu vorgegebenen koordinaten alle betroffenen plz anzeigt?
    Wo finde ich ein Bsp. wie ich das machen könnte?

    Leider entspicht 1 Seemeile = 1 Grad-Minute nur am Äquator.
    Es muss doch irgend ein Bsp zu finden sein. Die genauigkeit muss nicht 100% stimmen, aber eine Annäherungsformel wäre schön.

    Vielen Dank

  • #2
    siehe http://www.php.de/php-einsteiger/490...ordinaten.html
    Außerdem interessiert Dich vielleicht database spatial data - Google Search

    Kommentar


    • #3
      Aus meinen Bookmarks:

      http://blog.marit.ag/2008/08/22/sql-...ostleitzahlen/

      Kommentar


      • #4
        Schau dir auch mal die raumbezogenen Erweiterungen von MySQL an.

        Kommentar


        • #5
          Habe etwas, aber...

          Habe etwas gefunden:
          SELECT plz
          FROM tbl_staedte
          WHERE SQRT(POW('".$row["l"] - l, 2 ) * 6400 + POW('".$row["b"]."' - b, 2 ) * 12100 ) < $entfernung

          Da diese Abfrage relativ lange dauert, will ich die gefundenen PLZ in eine Spalte (Name: km5, km10, km20) der Tabelle schreiben, aber irgendwas ist da nicht richtig in meinem SQL-String:
          PHP-Code:
          UPDATE tbl_staedte a
          SET 
            a
          .km5 = (SELECT CONCAT(a.km0','GROUP_CONCAT(b.plz)) 
              
          FROM tbl_staedte b
              WHERE SQRT
          (POW(a.b.l) * 6400 POW(a.b.b) * 12100 ) < 5),
            
          a.km10 = (SELECT CONCAT(a.km0','GROUP_CONCAT(c.plz)) 
              
          FROM tbl_staedte c
              WHERE SQRT
          (POW(a.c.l) * 6400 POW(a.c.b) * 12100 ) < 10),
            
          a.km20 = (SELECT CONCAT(a.km0','GROUP_CONCAT(d.plz)) 
              
          FROM tbl_staedte d
              WHERE SQRT
          (POW(a.d.l) * 6400 POW(a.d.b) * 12100 ) < 20
          Ich bekomme die Fehlermeldung:
          #1093 - You can't specify target table 'a' for update in FROM clause

          Aber ich muss doch die Tabellen einen Namen geben?
          Wo liegt denn mein Fehler?

          Kommentar


          • #6
            Zitat von http://dev.mysql.com/doc/refman/5.0/en/update.html
            Currently, you cannot update a table and select from the same table in a subquery.

            Kommentar

            Lädt...
            X