Standort und Umkreis berechnen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Standort und Umkreis berechnen

    Moin alle zusammen,

    ich hab schon rumgesucht, aber leider nichts Passendes gefunden.

    Gibt es ein fertiges Framework zur Standort- und Umkreisberechnung?

    Ich möchte in einer App den Standort abfragen und dann anhand der Geo-Koordinaten Informationen abrufen, welche in einer MySQL-DB stehen.
    Der Umkreis soll dabei variabel einstellbar sein und für die Berechnung muss ich ja die Erdkrümmung einbeziehen, also die Koordinaten in ein kartesisches System übertragen.

    Viele Grüße
    Bernd
    Ich bin gegen Signaturen!!!
  • WIllst du wirklich so große Umkreise einbeziehen, dass die Erdkrümmung eine Rolle spielt? Also bis 1000km würde ich mir da jetzt keine so großen Gedanken drüber machen. Da entstehen ungenauigkeiten die eh keiner merkt.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    WIllst du wirklich so große Umkreise einbeziehen, dass die Erdkrümmung eine Rolle spielt? Also bis 1000km würde ich mir da jetzt keine so großen Gedanken drüber machen. Da entstehen ungenauigkeiten die eh keiner merkt.

    Hast Du eine Entfernungsberechnung, die ohne Erdkrümmung bei kleinen Abständen funktioniert?
    „Meine Komplikation hatte eine Komplikation.“
  • Spannend finde ich, dass 'Höhenänderungen nicht berücksichtigt' werden.

    Die Berechnung der Entfernung der Mnt. Everest Spitze zur Mariannensenke wird also mindestens um 21km daneben liegen.
    (Zuzüglich der Laufwege, die man über den Himalaya haben dürfte...)

    Ansonsten ist distanceFromLocation: eine feine Sache und für die gängigsten Anwendungsfälle ideal, wenn man eine gute Position bekommen hat.
    Die GPS Genauigkeit schwankt ja leider immens.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • macmoonshine schrieb:

    Thallius schrieb:

    WIllst du wirklich so große Umkreise einbeziehen, dass die Erdkrümmung eine Rolle spielt? Also bis 1000km würde ich mir da jetzt keine so großen Gedanken drüber machen. Da entstehen ungenauigkeiten die eh keiner merkt.

    Hast Du eine Entfernungsberechnung, die ohne Erdkrümmung bei kleinen Abständen funktioniert?

    Und lässt die sich ähnlich simpel durchführen wie [currentLocation distanceFromLocation:homeBaseLocation];? ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • wir hatten hier auch schon mal die frage wie man am besten/schnellsten daten aus einer DB auslesen kann welche in einem bestimmten umkreis zu einem bestimmten punkt sind.

    normalerweise ist das mit der erdkrümmung eh schmarrn (vor allem bei kleinen entfernungen) denn seit wann hat die erde eine glatte oberfläche (hier sind massig berge, hügel, etc ;-))
  • @Moon

    ja ich habe eine Berechnung die ohne Krümmung rechnet und das auch in gutem Tempo

    @Lukas

    Die Funktion stand mir damals nicht zur Verfügung da es die auf MAC nicht gab. Wie schnell die von Apple ist wenn man mehrere tausend punkte berechnet weiß ich genauso wenig. Wenn die wirklich Erdkrümmung etc einberechnet, dann kann ich mir vorstellen das es langsam werden wird.

    Um die Höhenunterschiede zu berechnen kannst du noch zusätzlich topografische Karten benutzen. Das habe ich auch schon gemacht, allerdings bekommst du dann eine extrem grosse Datenflut, denn diese Karten sind riesig.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Manfred Kreß schrieb:

    Die Distanz zweier Punkte auf einer Kugel zu berechnen, wird die Hosentaschen Unix Maschinen wohl kaum in die Knie zwingen. Auch wenn der User 60 Anfragen pro Sekunde abschickt ;)


    wenn aber 1.000 user 60 anfragen pro sekunde schicken sind das schon 60.000 anfragen pro sekunde. wenn diese dann durch eine DB von mehreren millionen einträgen rauschen soll bleibt keine maschine auf 0,01 % auslastung ;)

  • wenn aber 1.000 user 60 anfragen pro sekunde schicken sind das schon 60.000 anfragen pro sekunde. wenn diese dann durch eine DB von mehreren millionen einträgen rauschen soll bleibt keine maschine auf 0,01 % auslastung ;)


    Da wir ja aber die Berechnung des regionRect auf dem Client machen, und nur noch die Eckdaten für N,S,E,W an den Server gehen, juckt das den Server auch nicht. Der muss das dann nur noch 60000 mal aus der DB fischen, da wird man nicht drumrum kommen ;)
    Seminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht.
  • Manfred Kreß schrieb:


    wenn aber 1.000 user 60 anfragen pro sekunde schicken sind das schon 60.000 anfragen pro sekunde. wenn diese dann durch eine DB von mehreren millionen einträgen rauschen soll bleibt keine maschine auf 0,01 % auslastung ;)


    Da wir ja aber die Berechnung des regionRect auf dem Client machen, und nur noch die Eckdaten für N,S,E,W an den Server gehen, juckt das den Server auch nicht. Der muss das dann nur noch 60000 mal aus der DB fischen, da wird man nicht drumrum kommen ;)


    nein, die berechnung muss für jede einzelne koordinate am server (oder wo auch immer die DB liegt) durchgeführt werden (viele kann man natürlich schon recht einfach ausschließen weil die anhand einer koordinate schon niemals in einen bestimmten umkreis fallen können).
    aber trotzdem wären das bei 1.000 usern und 1 abfragen pro sekunde (um es einfach zu machen) und 1 mio einträge in der db eine milliarde berechnungen pro sekunde (und das keine einfachen additionen ;-))

  • nein, die berechnung muss für jede einzelne koordinate am server (oder wo auch immer die DB liegt) durchgeführt werden (viele kann man natürlich schon recht einfach ausschließen weil die anhand einer koordinate schon niemals in einen bestimmten umkreis fallen können).
    aber trotzdem wären das bei 1.000 usern und 1 abfragen pro sekunde (um es einfach zu machen) und 1 mio einträge in der db eine milliarde berechnungen pro sekunde (und das keine einfachen additionen ;-))


    Genau so macht man das eben nicht, siehe oben, du suchst nicht nach Koordinaten die im Umkreis liegen, sonder die innerhalb der Grenzen des RegionRect liegen. Und dann klappt das auch mit den 60000 Anfragen.

    Wie machst du ne Hit Detection auf nen runden Button ;)
    Seminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht.