|
|
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Друзья, есть ли функция которая высчитывает растение с учетом высоты? Сколько перерыл, не могу найти. Стандартная же считает с учетом чего угодно, только не высоты. Или я не туда смотрю? Буду благодарен ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 13:22:14 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
sqrt(distance*distance + h*h) ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 14:39:10 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
разной высоты одной из точек? Теорема Пифагора http://www.trailhunger.com/info/articles/garmin-distance-calculation если высота одинаковая но большое расстояние - то http://postgis.refractions.net/documentation/manual-1.4/ST_Distance_Sphere.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2014, 22:45:31 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
LonepsychoElectric200, ST_3DDistance? но существует только в версиях выше 2.0.0. Да, только я не вкурил каким образом она решает мою задачу. Ведь мне нужно учитывать высоту над уровне моря точки, а не SRID, проекцию или ближайшее расстояние. Может я просто готовить не умею?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2014, 16:13:34 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
А расскажите что за задачу решаете? Расстояние между точками на эллипсоиде - ортодрома. Её нельзя (так считается в публичных источниках, может для GPS/Глонасс военные математики что-то и изобрели секретное...) вычислить абсолютно точно. А тут ещё высоту хотите добавить. Обычно авторы программ расчета длины дороги для навигации вообще используют теорему Пифагора и не парятся - большое количество координат точек дороги даёт хороший результат (ну будет разница метров 500 на 4000 км между ортодромным методом и пифагоровым - всем пофиг же). А в пифагоров метод уже нетрудно будет добавить учёт высоты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2014, 21:17:15 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
WeedА расскажите что за задачу решаете? Расстояние между точками на эллипсоиде - ортодрома. Её нельзя (так считается в публичных источниках, может для GPS/Глонасс военные математики что-то и изобрели секретное...) вычислить абсолютно точно. А тут ещё высоту хотите добавить. Обычно авторы программ расчета длины дороги для навигации вообще используют теорему Пифагора и не парятся - большое количество координат точек дороги даёт хороший результат (ну будет разница метров 500 на 4000 км между ортодромным методом и пифагоровым - всем пофиг же). А в пифагоров метод уже нетрудно будет добавить учёт высоты. Совершенно верно уважаемый. GPS/Глонасс тематика. Вот такой промежуточный вариант наваял я, до выяснения обстоятельств. Считает точно. Но результат от стандартной PostGis отличается. А при большом количестве точек, разница очень заметна.По этому хотелось использовать что то нативное, вместе с плюшками в виде geometry::type. Также что бы все было "комфильно", без лишних пересчетов. А то какой то велосипед выходит. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 11:14:53 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200WeedА расскажите что за задачу решаете? Расстояние между точками на эллипсоиде - ортодрома. Её нельзя (так считается в публичных источниках, может для GPS/Глонасс военные математики что-то и изобрели секретное...) вычислить абсолютно точно. А тут ещё высоту хотите добавить. Обычно авторы программ расчета длины дороги для навигации вообще используют теорему Пифагора и не парятся - большое количество координат точек дороги даёт хороший результат (ну будет разница метров 500 на 4000 км между ортодромным методом и пифагоровым - всем пофиг же). А в пифагоров метод уже нетрудно будет добавить учёт высоты. Совершенно верно уважаемый. GPS/Глонасс тематика. А точнее? Если надо считать по треку расстояние, которое пролетел на разной высоте самолёт - это одно, а если, мнмнмнм, предсказать движение спутника это другое. Вот такой промежуточный вариант наваял я, до выяснения обстоятельств. Считает точно. Но результат от стандартной PostGis отличается. Считает точно но не точно? :) По диагонали глянул и не увидел определения эллипсоида (датума). Значит, используется расстояние по шару? Предположу, что постгис считает по эллипсу Земли wgs84 - оттуда и разница. Кстати, сорри, я ошибся насчет того, что нельзя определить расстояние точно по эллипсоиду - нельзя аналитически определить форму ортодромы, а её длину можно. Расчёт расстояния по эллипсоиду, определённому датумом: формула: http://en.wikipedia.org/wiki/Great-circle_distance рабочий код на ди: https://github.com/denizzzka/gis-stuff/blob/master/math/earth.d#L141 А при большом количестве точек, разница очень заметна.По этому хотелось использовать что то нативное, вместе с плюшками в виде geometry::type. Также что бы все было "комфильно", без лишних пересчетов. А то какой то велосипед выходит. Вот тут и возникает вопрос "что за задача решается?" Ведь, например, если это связано с дорожной сетью, то неровности дороги много больше кривизны Земли между двумя точками трека! Проще вообще не учитывать кривизну Земли в этом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 12:02:50 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Задача: расстояние по треку (по точкам) для GPS/Глонасс мониторинга. "По шару" (учет эллипсоида) можно забить. по причине большой частоты точек (макс. каждые 200 метров). Трек в среднем состоит из 1500 - 2500 точек (суточный к примеру). На такой частоте учитывать "шар" бессмысленно. Изначально начали считать без учета высоты. Статистика показала, что по сравнению с автомобильный одометром, погрешность достигала до "-15%" процентов. Это было давно и этот этап уже пройден. По сути, та функция, что я привел выше, считает максимально точно на сегодняшний день. И это не просто слова, это 2 летняя практика проверена на более 1000 автомобилях (точнее их одометрах). Еще сравнивали с формулой Винцетти. Т.е я хочу получить аналог результата своей функции, только с PostGis. Что бы я напрямую мог работать с geometry::type (поскольку так храню всякую хрень в Postgres в виде разных поинтов и полегонов). Дабы не приводить типизации данных туда сюда. Вот нечего такого, что бы дало хоть "приближенный" результат, я не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 12:49:00 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
А понятие "точности" расстояние в мониторинге вообще "относительное" и определяется владельцами авто. Если статистика показывает большое количество обращения с претензиями, что данные по системе и одометру расходятся, значит что то где то не так. Нету эталона. Не будешь же с рулеткой за треком бегать)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 12:52:34 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
ну всё тогда: - переводите координаты в Меркатора - ограничьте их по северу и по югу кругом типа полярного, в районе +-80 градусов, скажем (за этими кругами точность сильно уедет, будет опасность пересечения треком полюсов, ну и там всё равно никто не живёт) - учитывайте 180-й меридиан - считайте по Пифагору + высоту - будьте снисходительны к точности определения высоты GPS-приёмниками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 13:08:45 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Weedну всё тогда: - переводите координаты в Меркатора - ограничьте их по северу и по югу кругом типа полярного, в районе +-80 градусов, скажем (за этими кругами точность сильно уедет, будет опасность пересечения треком полюсов, ну и там всё равно никто не живёт) - учитывайте 180-й меридиан - считайте по Пифагору + высоту - будьте снисходительны к точности определения высоты GPS-приёмниками Пересчитывать все точки в Меркатора?)) та вы мазахист смотрю))) Так пифагор + высота, я так понял в PostGis не существует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 13:14:12 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200Weedну всё тогда: - переводите координаты в Меркатора - ограничьте их по северу и по югу кругом типа полярного, в районе +-80 градусов, скажем (за этими кругами точность сильно уедет, будет опасность пересечения треком полюсов, ну и там всё равно никто не живёт) - учитывайте 180-й меридиан - считайте по Пифагору + высоту - будьте снисходительны к точности определения высоты GPS-приёмниками Пересчитывать все точки в Меркатора?)) та вы мазахист смотрю))) Так пифагор + высота, я так понял в PostGis не существует? Понятия не имею. Но если существует то пересчитывает в Меркатора. Если не существует то вам придётся это сделать. Это не сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 13:23:46 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Что-то я вообще туплю сегодня. Если расстояние по эллипсоиду дополнить пифагоровой высотой - может это и будет расстояние по эллипсоиду с учетом высоты? Едет машина по планете и одновременно забирается на некую определенную высоту. Проекция - ортодрома. Мысленно распрямляем её, добавляем постоянно повышающуюся высоту по Пифагору - готово! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 13:30:08 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
WeedЧто-то я вообще туплю сегодня. Если расстояние по эллипсоиду дополнить пифагоровой высотой - может это и будет расстояние по эллипсоиду с учетом высоты? Едет машина по планете и одновременно забирается на некую определенную высоту. Проекция - ортодрома. Мысленно распрямляем её, добавляем постоянно повышающуюся высоту по Пифагору - готово! Дык, так такое предлагали в первых постах) Вы по кругу прошлись). Вообще спасибо вам добрый человек)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 13:49:34 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200Пересчитывать все точки в Меркатора?)) та вы мазахист смотрю))) Уточняю: для длины ортодромы по шару не требуется это. Но! если вы пересчитаете в Меркатора с учётом датума и расстояние между точками трека тоже будете определять "тупо" по Пифагору то результат будет намного точнее, чем тот, что есть у вас сейчас. Потому что в этом случае автоматически будет учтёна кривизна эллипсоида, просто потому что точек на треке много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 13:56:27 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200WeedЧто-то я вообще туплю сегодня. Если расстояние по эллипсоиду дополнить пифагоровой высотой - может это и будет расстояние по эллипсоиду с учетом высоты? Едет машина по планете и одновременно забирается на некую определенную высоту. Проекция - ортодрома. Мысленно распрямляем её, добавляем постоянно повышающуюся высоту по Пифагору - готово! Дык, так такое предлагали в первых постах) Это не факт что верно! Это надо тем, кто в матане шарит вопрос задать. На форуме OSM есть люди, которые на этом собаку съели Хотя для вашего случая с большим количеством близких точек на треке - пойдёт, ошибка если и есть будет незаметна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 13:58:18 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200, postgis функции написаны на C, не считая нескольких врапероф. а вы собираетесь считать на SQL подозреваю будут потери производительности. а про получение результата в метрах всё есть в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 19:16:55 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
LonepsychoElectric200, postgis функции написаны на C, не считая нескольких врапероф. а вы собираетесь считать на SQL подозреваю будут потери производительности. а про получение результата в метрах всё есть в документации. Спасибо, я в курсе на чем написан postgis. Писать подобное на чистом "C" - нет возможности та и смысла как такого не вижу. Производительность компенсируется масштабируемостью. Во вторых, процедуры компилируемые, и это намного лучше чем использовать что либо интерпретируемое. Да и Postgis для этого и существует же. А меня интересуют не метры, а учет высоты. Наверно вы не весь топик читали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 12:48:28 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200LonepsychoElectric200, postgis функции написаны на C, не считая нескольких врапероф. а вы собираетесь считать на SQL подозреваю будут потери производительности. а про получение результата в метрах всё есть в документации. Спасибо, я в курсе на чем написан postgis. Писать подобное на чистом "C" - нет возможности та и смысла как такого не вижу. Производительность компенсируется масштабируемостью. Во вторых, процедуры компилируемые, и это намного лучше чем использовать что либо интерпретируемое. Да и Postgis для этого и существует же. А меня интересуют не метры, а учет высоты. Наверно вы не весь топик читали. Хочу на всякий случай уточнить про: " Во вторых, процедуры компилируемые, и это намного лучше чем использовать что либо интерпретируемое." что вы под этим имели в виду? если вы про pl/pgsql - то это чистый интерпретатор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 13:35:30 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200, Да может быть что я чтото недопонял (русский всётаки не мой родной язык). но, по тому что я вижу, вы пытаетесь получить длину траектории которая есть в 3D. если я не правильно понял задачу, тогда - да, мой ответ считать неверным. если всётаки я прав, тогда присмотритесь к нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 16:09:14 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Maxim BogukElectric200пропущено... Спасибо, я в курсе на чем написан postgis. Писать подобное на чистом "C" - нет возможности та и смысла как такого не вижу. Производительность компенсируется масштабируемостью. Во вторых, процедуры компилируемые, и это намного лучше чем использовать что либо интерпретируемое. Да и Postgis для этого и существует же. А меня интересуют не метры, а учет высоты. Наверно вы не весь топик читали. Хочу на всякий случай уточнить про: " Во вторых, процедуры компилируемые, и это намного лучше чем использовать что либо интерпретируемое." что вы под этим имели в виду? если вы про pl/pgsql - то это чистый интерпретатор От части да, от части нет. Чистый интерпретатор это php к примеру. plpgql - обрабатывается самим Postgres. Как он там их хранит, дело другое. Но в любом случае, в его использования я вижу больше преимуществ чем недостатков, как с технической точки зрения, так и с учетом моих задач. LonepsychoElectric200, Да может быть что я чтото недопонял (русский всётаки не мой родной язык). но, по тому что я вижу, вы пытаетесь получить длину траектории которая есть в 3D. если я не правильно понял задачу, тогда - да, мой ответ считать неверным. если всётаки я прав, тогда присмотритесь к нему. Я не понял вашего совета если честно. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 19:50:06 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
Electric200, уже третий раз пререпрочитал тему, и по моему вы велосипед изобретаете. но, видимо есть где-то рассихрон в понимании (очень большая вероятность что в моём), так что ухожу с дистанции :) . успехов в решении задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2014, 09:03:03 |
|
||
|
PostGis - Distance
|
|||
|---|---|---|---|
|
#18+
В том и задача, что я не хочу велосипед, а приходится. Посмотрите на мою функцию Код: plsql 1. Посмотрите на аргументы которая она принимает. Это координаты начала отрезка+высота, координаты конца отрезка + высота. Хочу такую же функцию на Postgis с таким же результатом просчета. Но нет таковой. Вот и вся задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2014, 10:28:37 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38638687&tid=1998687]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 507ms |

| 0 / 0 |
