bnvdarklord Δημοσ. 21 Απριλίου 2013 Δημοσ. 21 Απριλίου 2013 Καλησπέρα, Θέλω να υπολογίσω σε μέτρα την απόσταση δύο γεωγραφικών σημείων. Τα σημεία αυτά βρίσκονται σε πόλη, και η απόσταση που με ενδιαφέρει είναι η απόσταση περπατήματος μεταξύ των σημείων αυτών και όχι η ευθεία απόσταση τους. Για αυτό σκέφτομαι να χρησιμοποιήσω την απόσταση Manhattan, αλλά δεν ξέρω πως θα γίνει ο υπολογισμός αυτός. Παράδειγμα: A = 37.971200,23.648500B = 37.981200,23.638500 Η απόσταση manhattan είναι 0.02. Πώς αυτή η απόσταση μπορει να μετατραπεί σε μέτρα; Μήπως το σκέφτομαι λάθος;
NikosKallithea Δημοσ. 21 Απριλίου 2013 Δημοσ. 21 Απριλίου 2013 1,6 χλμ https://maps.google.com/maps?saddr=37.981200,23.638500&daddr=37.9806019,23.6385709+to:%CE%96%CF%89%CE%BF%CE%B4%CF%8C%CF%87%CE%BF%CF%85+%CE%A0%CE%B7%CE%B3%CE%AE%CF%82+7-11,+%CE%9A%CE%BF%CF%81%CF%85%CE%B4%CE%B1%CE%BB%CE%BB%CF%8C%CF%82+181+20,+%CE%95%CE%BB%CE%BB%CE%AC%CE%B4%CE%B1&hl=el&ie=UTF8&sll=37.976308,23.645153&sspn=0.025913,0.049524&geocode=FRCMQwId5LFoAQ%3BFbmJQwIdKrJoASk73UHUDbuhFDGnTyo5ApBINw%3BFcxkQwIdA9loASl9ooeRdbuhFDGpi0IlQimakg&t=h&dirflg=w&mra=ls&via=1&z=16
bnvdarklord Δημοσ. 21 Απριλίου 2013 Μέλος Δημοσ. 21 Απριλίου 2013 Ναι, χαίρω πολύ, θέλω να το υπολογίσω σε κάποιο πρόγραμμα μου, και θα χρησιμοποιούσα το maps για να δω πόσο ακριβές είναι.
thanos713 Δημοσ. 21 Απριλίου 2013 Δημοσ. 21 Απριλίου 2013 Εσύ να φανταστώ έχεις την δυνατότητα να διαβάσεις τους δρόμους που να ενώνουν τα δύο σημεία μεταξύ τους, έτσι; Αν είναι έτσι, γιατί δεν δοκιμάζεις με BFS;
bnvdarklord Δημοσ. 21 Απριλίου 2013 Μέλος Δημοσ. 21 Απριλίου 2013 Οχι, απλά δύο σημεία έχω, δεν ξέρω πως πάνε οι δρόμοι, για αυτό θέλω προσεγγιστικά με manhattan.
thanos713 Δημοσ. 21 Απριλίου 2013 Δημοσ. 21 Απριλίου 2013 Μα έτσι ούτε προσεγγιστικά θα καταφέρεις κάτι, γιατί μπορεί ο δρόμος να είναι μία ευθεία ή να περνάει μέσα από βουνά, λαγκάδια και να έχει 200 στροφές. EDIT: Βέβαια αν η απόσταση είναι μικρή, μπορεί να πέσεις και σχετικά μέσα. Το ψάχνω λίγο και ενημερώνω., 1
bnvdarklord Δημοσ. 21 Απριλίου 2013 Μέλος Δημοσ. 21 Απριλίου 2013 Ξέρω οτι τα σημεία είναι και τα δύο εντός Αθήνας. Τωρα αν είναι ευθεία ειναι όντως πρόβλημα, αλλα με ενδιαφέρουν κυρίως σημεία που ειναι αρκετά κοντά μεταξύ τους οπότε ίσως η απόκλιση να ειναι μικρή.
thanos713 Δημοσ. 21 Απριλίου 2013 Δημοσ. 21 Απριλίου 2013 Θα πρέπει να μπορείς να ξέρεις στο περίπου η μεταβολή μιας μοίρας πόσα χιλιόμετρα είναι, αλλά αυτό εξαρτάται από το γεωγραφικό πλάτος πάρα πολύ. Πχ στο δικό μας γεωγραφικό πλάτος, είναι περίπου 100 η χιλιόμετρα η μεταβολή μιας μοίρας. Αν τώρα θεωρήσεις τις μοίρες σαν συντεταγμένες, μπορείς να πεις 0.02*100 = 2km, αλλά ξεφεύγει αρκετά. 1
bnvdarklord Δημοσ. 21 Απριλίου 2013 Μέλος Δημοσ. 21 Απριλίου 2013 Αυτό με το x100 το δα με το μάτι και σε ενα δευτερο παράδειγμα που στα 600m μου εβγαζε 527m, αλλα είπα ότι ήταν συμπτωση. Πως το υπολογισες εσυ;
thanos713 Δημοσ. 21 Απριλίου 2013 Δημοσ. 21 Απριλίου 2013 Όταν είσαι στον ισημερινό, η απόσταση μιας μοίρας είναι περίπου 112km. Εμείς που είμαστε πιο πάνω, έχουμε μικρότερη μεταβολή, οπότε το έβαλα 100. Βέβαια, μπορεί να είναι και ακόμα μικρότερη και να βγαίνει ακόμα πιο κοντά. Μπορείς να θεωρήσεις ότι μεταβάλλεται γραμμικά και να πεις ότι κάθε 10 μοίρες, ελλατώνεται κατά το 1/18 του 112, ή κάθε 1 μοίρα, μεταβάλλεται κατά το 1/180 του 112. Είμαστε στις 30, έχουν μείνει δηλαδή 12/18 του 112, δηλαδή 75km. 0.02 * 75 = 1.5! Αλλά δεν είναι ακριβώς γραμμικά, οπότε μέσα πέφτεις. Άμα τώρα θες ακόμα μεγαλύτερη ακρίβεια, αφού στον άξονα τον y, η μεταβολή είναι σταθερή (μπορούμε να βρούμε online πόσο είναι)και στον άξονα των x αλλάζει, μπορείς να τα μετρατρέπεις από την αρχή και να υπολογίζεις στα νέα νούμερα την απόσταση Manhattan. 2
subdee Δημοσ. 22 Απριλίου 2013 Δημοσ. 22 Απριλίου 2013 (επεξεργασμένο) Αυτό που ψάχνεις μάλλον είναι η Haversine formula, Site: http://www.codecodex.com/wiki/Calculate_Distance_Between_Two_Points_on_a_Globe">εδώ μερικά παραδείγματα Αλλά όπως είπες υπολογίζει σε ευθεία γραμμή. Μπορείς εναλλακτικά να χρησιμοποιήσεις το API της Google Maps για να το υπολογίσεις αλλά έχει όριο στον αριθμό των calls που μπορείς να κάνεις και δεν ενδείκνυται για πολλαπλές χρήσεις. Επεξ/σία 22 Απριλίου 2013 από subdee 1
thanos713 Δημοσ. 22 Απριλίου 2013 Δημοσ. 22 Απριλίου 2013 Κοίτα, το θεωρώ υπερβολικό να χρησιμοποιήσεις σφαιρική τριγωνομετρία αφού έχεις πάρα πολύ μικρές γωνίες. Δεν έχεις να χάσεις τίποτα, αλλά θα παιδευτείς για το ίδιο αποτέλεσμα. Εγώ προτείνω να φτιάξεις ένα πίνακα με γωνίες και αντίστοιχες μεταβολές χιλιομέτρων και από εκεί να υπολογίζεις με μεγάλη προσέγγιση πόσο είναι. Φυσικά, με API της Google Maps (φαντάζομαι) με μια απλή BFS έχεις κάνει την δουλειά σου και ξέρεις και ακριβώς την απόσταση.
bnvdarklord Δημοσ. 22 Απριλίου 2013 Μέλος Δημοσ. 22 Απριλίου 2013 Δεν νομίζω να βολέψει το ΑΡΙ της google αν δεν επιτρέπει πολλές ερωτήσεις, γιατί εχω περιπου 8000 σημεία και θελω να βρώ για το κάθε ενα ποια απο τα υπόλοιπα είναι κοντά με τα πόδια.
karabouzouk... Δημοσ. 28 Απριλίου 2013 Δημοσ. 28 Απριλίου 2013 ACOS(SIN(RADIANS( %lat1% )) * SIN(RADIANS( %lat2% )) + COS(RADIANS( %lat1% )) * COS(RADIANS( %lat2% )) * COS(RADIANS( %lon2% ) - RADIANS( %lon1% ))) H συνάρτηση που χρησιμοποίησα σε δικό μου πρόγραμμα για υπολογισμό απόστασης δύο γεωγραφικών σημείων λαμβάνοντας υπ όψιν και την καμπύλη της γης για πολύ μεγάλες αποστάσεις. *Κώδικας είναι από SQL φάση.
insomniaK Δημοσ. 29 Απριλίου 2013 Δημοσ. 29 Απριλίου 2013 Το πρόβλημα σου δεν είναι η καμπύλη της γης αν μιλάς για αποστάσεις μέσα στην Αθήνα, αλλά ποιοι είναι μονόδρομοι, πόσες φορές πρέπει να στρίψεις κλπ κλπ. Αν ήμουν στη θέση σου, θα θεωρούσα ότι ο κόσμος είναι χωρισμένος σε ορθογώνια και ότι για να πάω απο το σημείο Α στο σημείο Β, στρίβω μία φορά κατά 90 μοίρες. Το αποτέλεσμα είναι το αλγεβρικό άθροισμα των διαφόρων των συντεταγμένων στον κάθε άξονα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα