edwin: Punkte suchen...

Hallo zusammen -ihr seid jetzt meine letzte Hoffnung.
Ich möchte eine Landkarte erstellen. Wenn ich auf ein Ort
klicke möchte ich wissen, welche Orte im Umkreis von z.B. 50km
liegen. Mit Hilfe einer Datenbank oder einen .js, wie mache ich das??? Die Koordinaten habe ich

Danke..

  1. Hi,

    Ich möchte eine Landkarte erstellen. Wenn ich auf ein Ort
    klicke möchte ich wissen, welche Orte im Umkreis von z.B. 50km
    liegen. Mit Hilfe einer Datenbank oder einen .js, wie mache ich
    das??? Die Koordinaten habe ich

    Dadurch, daß du die Koordinaten der Punkte hast, hast du ja auch
    die Orts-Vektoren, durch die man die Punkte darstellen kann.
    Durch die Ortsvektoren wiederum hast du den Differenz-Vektor zwischen
    den beiden Punkten; wenn du den Differenz-Vektor hast, kannst du
    ausrechnen, ob der Punkt in dem Kreis liegt, oder ob er außerhalb
    liegt. Allerdings mußt du den Radius umgerechnet in cm auf der Karte
    haben.

    Das ganze sähe ungefähr so aus:

    r = 5cm (z. B.)
    P1(x1/y1): Vektor a = (x1/y1) (Der Kreis-Mittelpunkt)
    P2(12/12): Vektor b = (x2/y2) (Der Punkt der Stadt, die du definiert
    hast)

    Der Differenz-Vektor von V. a nach V. b setzt sich zusammen aus

    Vektor c = Vektor b - Vektor a = (x2/y2) - (x1/y1) = (x3/y3) (in
    diesem Falle).

    Länge des Vektors c: Wurzel aus(x3^2+y3^2)

    Zusammgefasst in JS:

    var r = 5;
    var x = x2-x1;
    var y = y2-y1;

    var laenge = Math.sqrt(Math.pow(x,2) - Math.pow(y,2));

    if(laenge <= r)
    { alert("Ich liege in dem Radius"); }
    else
    { alert("ich liege außerhalb"); }

    mfg
    CK1

  2. Moin,

    Hallo zusammen -ihr seid jetzt meine letzte Hoffnung.
    Ich möchte eine Landkarte erstellen. Wenn ich auf ein Ort
    klicke möchte ich wissen, welche Orte im Umkreis von z.B. 50km
    liegen. Mit Hilfe einer Datenbank oder einen .js, wie mache ich das??? Die Koordinaten habe ich

    <disclaimer> ohne, daß ich jetzt Zeit habe, es zu testen, erinnere ich mich dunkel, daß </disclaimer>
    beim Absenden eines Formulars durch einen Image-Button (also <input type="image" ...>) mit
    der POST Methode auch die Koordinaten des Mauszeigers auf dem Image mitgepostet werden.
    Die Koordinaten werden dabei so weitergegeben als ob es Formularvariablen namens x und y wären.
    Was Du also zu tun hättest, ist:

    • ein Bild Deiner Landkarte malen und z.B. als *.gif bereitstellen
    • Ein HTML-Formular erstellen mit einem
        <input type="image" src="url_deines_bildes.gif" width=.... height=.... usw...>
        Absendeknopf erstellen.
    • Ein cgi schreiben, welches den Abstand der Städte mit dem Punkt (x,y)
        aus dem Formular berechnet.
        Du brauchst natürlich zunächst eine Umrechnung wie z.B. ein Pixel
        auf dem .gif entsprechen A=99 Kilometer. Dann ergibt sich z.B.
        der Abstand (x1,y1) zu (x,y) in km umgerechnet als A*sqrt((x1-x)^2 + (y1-y)^2).
      -  Wenn es nicht allzuviele Städte sind, einfach für alle Städte die Abstandsberechnung
         durchführen und - wenn weniger als 50 km herauskommt - die Stadt ausgeben.

    Vielleicht kann man die Koordinaten stattdessen auch direkt per JavaScript abfragen, aber da
    bin ich momentan überfragt...

    Viel Glück beim Probieren

    Andreas

    1. Vielleicht kann man die Koordinaten stattdessen auch direkt per JavaScript abfragen, aber da
      bin ich momentan überfragt...

      Hallo,

      Ja mit dem IE kann man die Koordinaten innerhalb eines images per JavaScript auslesen (window.event.offsetX).
      Mit Netscape allerdings nur die Koordinaten innerhalb des Frames. Man müsste die Graphik also per CSS absolut positionieren, dass man die eigentlichen Bild-Koordinaten ausrechnen kann.

  3. Hallo

    was spricht gegen die Verwendung von <../../tcgh.htm#a1> ?

    Gruß
       Michael