Chcę utworzyć 2 nowe długości geograficzne i 2 nowe szerokości geograficzne na podstawie współrzędnych i odległości w metrach. Chcę utworzyć ładną ramkę ograniczającą wokół określonego punktu. Dotyczy części miasta i maksymalnie ± 1500 metrów. Dlatego nie sądzę, aby trzeba było brać pod uwagę krzywiznę Ziemi.
Więc mam 50.0452345
(x) i 4.3242234
(y) i chcę wiedzieć x + 500 metrów, x - 500 metrów, y - 500 metrów, y + 500 metrów
Znalazłem wiele algorytmów, ale prawie wszystkie wydają się radzić sobie z odległością między punktami.
algorithm
geolocation
Benjamin Udink ten Cate
źródło
źródło
Odpowiedzi:
Liczba kilometrów na stopień długości geograficznej wynosi w przybliżeniu
gdzie
theta
jest szerokość geograficzna w stopniach ir_earth
wynosi około 6378 km.Liczba kilometrów na stopień szerokości geograficznej jest w przybliżeniu taka sama we wszystkich lokalizacjach, ok
Możesz więc:
Tak długo, jak
dx
idy
są małe w porównaniu z promieniem ziemi i nie zbliżasz się zbytnio do biegunów.źródło
cos(latitude*180/pi)
Przyjęta odpowiedź jest całkowicie poprawna i działa. Zrobiłem kilka poprawek i przekształciłem się w to:
Mam nadzieję, że to też pomoże.
źródło
0.0000089
? Staraj się unikać magicznych liczb, nikt tego nie zrozumie.W przypadku szerokości geograficznej wykonaj:
W przypadku długości geograficznej wykonaj:
Zmienna
your_meters
może zawierać wartość dodatnią lub ujemną.źródło
Sprawdziłeś: Jak znaleźć szerokość / długość, która jest x km na północ od podanej szerokości / długości ?
Te obliczenia są w najlepszym razie irytujące, zrobiłem ich wiele. Formuła haversine będzie Twoim przyjacielem.
Niektóre źródła: http://www.movable-type.co.uk/scripts/latlong.html
źródło
Musiałem poświęcić około dwóch godzin na wypracowanie rozwiązania @nibota, po prostu potrzebowałem metody tworzenia ramki granicznej, biorąc pod uwagę jej środek i szerokość / wysokość (lub promień) w kilometrach:
Nie rozumiem rozwiązania matematycznie / geograficznie. Poprawiłem rozwiązanie (metodą prób i błędów), aby uzyskać cztery współrzędne:
Północ:
Wschód:
Południe:
Zachód:
źródło
jeśli nie musisz być bardzo dokładny, to: każdy 10000 metrów to około 0,1 dla szerokości i długości geograficznej. na przykład chcę załadować lokalizacje 3000 metrów wokół punktu_A z mojej bazy danych:
źródło
źródło
źródło