Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.01.02;
Скачать: [xml.tar.bz2];

Вниз

Фриланс заказ:3 функции для работы с географическими координатами   Найти похожие ветки 

 
@!!ex ©   (2010-09-09 19:38) [0]

Пару недель назад я задавал здесь вопрос о том, как перевести географические координаты в координаты на плоскости с проекцией земли.
В этом вопросе я так и не разобрался и решил последовать совету, который здесь очень популярен: "Нанять программиста".

Задача:
Три функции.
1) Функция перевода географических координат в координаты на карте(карта в виде рисунка будет предоставлена, какой тип проекции используется я не знаю). на входе два флоата, на выходе два инта
2) Функция перевода координат на карте в географические. на входе два инта, на выходе два флоата
3) Функция расчета расстояния между двумя точками заданными географическими координатами. на входе 4 флоата, на выходе флоат

нужно завтра к обеду.
оплата 100$ во вторник


 
Anatoly Podgoretsky ©   (2010-09-09 19:41) [1]

> @!!ex  (09.09.2010 19:38:00)  [0]

При том не зная какая проекция будет.


 
@!!ex ©   (2010-09-09 19:43) [2]

Я так понял, что это может специалист определить по карте.


 
Pavia ©   (2010-09-09 19:47) [3]


> Я так понял, что это может специалист определить по карте.

Карту выложи и привязку если есть (к примеру в формате *.map).


 
TUser ©   (2010-09-09 20:26) [4]

Сделаю. Скинь на почту или в аську.


 
Медвежонок Пятачок ©   (2010-09-10 12:47) [5]

расстояние между двумя точками. реализация на пхп

function get_distanse($Lat1,$Long1,$Lat2,$Long2)
{
 $dDistance = 0;
 $dLat1InRad = $Lat1 * (pi() / 180.0);

 $dLong1InRad = $Long1 * (pi() / 180.0);
 $dLat2InRad  = $Lat2 * (pi() / 180.0);
 $dLong2InRad = $Long2 * (pi() / 180.0);

 $dLongitude = $dLong2InRad - $dLong1InRad;
 $dLatitude  = $dLat2InRad  - $dLat1InRad;

 $a = pow(sin($dLatitude / 2.0), 2.0) + cos($dLat1InRad) * cos($dLat2InRad) * pow(sin($dLongitude / 2.0), 2.0);

 $c = 2.0 * atan2(sqrt($a), sqrt(1.0 - $a));

 // Distance.
 // const Double kEarthRadiusMiles = 3956.0;

 $kEarthRadiusKms = 6376.5;
 $dDistance = $kEarthRadiusKms * $c;

 return $dDistance;
}


 
12 ©   (2010-09-10 13:54) [6]

положил бы файликом куда-нибудь
а то каждому что ли будешь отписывать?
а так и я бы порешал, может, и за спасибо.


 
12 ©   (2010-09-10 13:56) [7]

+

> карта в виде рисунка будет предоставлена

делать
только для этого рисунка или как


 
Anatoly Podgoretsky ©   (2010-09-10 14:34) [8]

Уже завтра и обед уже прошел, так что поздно пить шампанское.


 
12 ©   (2010-09-10 14:38) [9]

тьфу ты, не обратил внимания :)


 
icelex ©   (2010-09-10 14:57) [10]


> Медвежонок Пятачок ©   (10.09.10 12:47) [5]

смешно.
посмеялся.


 
Медвежонок Пятачок ©   (2010-09-10 15:04) [11]

смех без причины признак дурачины.


 
Медвежонок Пятачок ©   (2010-09-10 15:07) [12]

код для great circle distance был адаптирован отсюда:
http://www.movable-type.co.uk/scripts/gis-faq-5.1.html

ах, да, точно.
не до миллиметровой наноточности считает.
которая автору конечно же позарез нужна с его битмаповыми неиндексированными картами и интерполированными координатами.


 
icelex ©   (2010-09-10 15:13) [13]


> Медвежонок Пятачок ©   (10.09.10 15:07) [12]

еще раз посмеялся


 
Медвежонок Пятачок ©   (2010-09-10 15:17) [14]

ты можешь здесь смеяться хоть до усрачки.
только код этот проверен и результаты сравнивались с мобильным гармином.
сишарповская версия кода работает на коммуникаторе и считает длину трека.
то же самое делает гармин мобайл иксти.

результаты одинаковы до 10 метров на отрезке километр.


 
pasha_golub ©   (2010-09-10 15:35) [15]


> Медвежонок Пятачок ©   (10.09.10 15:17) [14]


> результаты одинаковы до 10 метров на отрезке километр.

На 100км - это будет 1км. Многовато, однако


 
TUser ©   (2010-09-10 15:44) [16]

Видать, автор сам сотню заработал.


 
Медвежонок Пятачок ©   (2010-09-10 15:46) [17]

Согласен. Один процент это много.
На десяти килопарсеках вообще охрененная разница будет.

Просто мой трекер использует расчет для определения момента, когда я сместился от последней точки не менее чем на 200 метров. Если уже сместился, идет постинг координат на сервер. После этого заодно суммируется общая пройденная дистанция (просто так, для мебели).

Так вот, даже в таком режиме отличия от гарминовой математики такие незначительные.


 
Anatoly Podgoretsky ©   (2010-09-10 16:16) [18]

> pasha_golub  (10.09.2010 15:35:15)  [15]

Ну так это не для стрельбы по цели.


 
Омлет ©   (2010-09-10 16:19) [19]

> Anatoly Podgoretsky ©   (10.09.10 16:16) [18]
> Ну так это не для стрельбы по цели.


А может @!!ex "Булаву" дорабатывает? ))


 
Anatoly Podgoretsky ©   (2010-09-10 16:23) [20]

> Омлет  (10.09.2010 16:19:19)  [19]

Для булавы это недостижимая точность.


 
Jeer ©   (2010-09-10 16:43) [21]


> Медвежонок Пятачок ©   (10.09.10 15:04) [11]
>
> смех без причины признак дурачины.


Над двоечником не грех посмеяться.


 
Медвежонок Пятачок ©   (2010-09-10 16:53) [22]

Ну давай проверим реально твои понты, отличник.

Берем участок трассы с двумя точками, между которыми известное расстояние.
Идем в гугл и отмечаем координаты.
Затем считаем по моей формуле.

Затем ты продолжаешь свои дешевые понты.

Идет?
или зассал?


 
Медвежонок Пятачок ©   (2010-09-10 17:16) [23]

Удалено модератором


 
@!!ex ©   (2010-09-10 20:31) [24]

Точность километр - выше крыши.
Функции для работы с конкретной картой растром. Карту выложу в течении часа сюда.

Срок "сегодняшний обед" был к сожалению провален третьей стороной, которая должна была предоставить собственно карту.
Задача все еще актуальна.

Точность "километр" - выше крыши для нашей задачи.


 
@!!ex ©   (2010-09-10 21:08) [25]

http://img337.imageshack.us/img337/7223/37909352.jpg


 
DVM ©   (2010-09-10 21:19) [26]

Это Robinson Projection http://en.wikipedia.org/wiki/Robinson_projection если кому нужно будет.


 
Омлет ©   (2010-09-10 22:00) [27]

> @!!ex ©   (10.09.10 20:31) [24]
> Точность "километр" - выше крыши для нашей задачи.


Точно - Булава ))


 
Джо ©   (2010-09-10 23:52) [28]


> http://img337.imageshack.us/img337/7223/37909352.jpg

На такой карте и 50 км — выше крыши :)


 
картман ©   (2010-09-10 23:58) [29]


> Омлет ©   (10.09.10 22:00) [27]


>
> Точно - Булава ))

ни у кого нет карты солнечной системы? На будущее:)


 
@!!ex ©   (2010-09-11 00:38) [30]

> [28] Джо ©   (10.09.10 23:52)

Карта больше размером примерно в 10 раз.


 
icelex ©   (2010-09-11 00:40) [31]


> Медвежонок Пятачок ©   (10.09.10 16:53) [22]

давай лучше так: ты читаешь хотя бы "Основы геодезии", а потом будешь людей оскорблять, ок?

и если ты надеешься на проекции Робинсона с твоей формулой получить хоть какую-нибудь точность (о километре здесь даже речи не идет), иди учи матчасть, спорить с тобой просто смешно


> @!!ex ©   (10.09.10 20:31) [24]

километр на этой карте не получить (как из-за масштаба, так и из-за типа проекции)
какая реальная точность нужна?


 
@!!ex ©   (2010-09-11 08:46) [32]

> [31] icelex ©   (11.09.10 00:40)
> какая реальная точность нужна?

2 пикселя на этой карте увеличенной в 10 раз. Это вполне достаточно.


 
icelex ©   (2010-09-11 09:34) [33]

http://as3coder.blogspot.com/2010/03/blog-post.html

обрати внимание на ru.as3coder.map.projection.Robinson.as


 
DVM ©   (2010-09-11 11:03) [34]


> icelex ©   (11.09.10 00:40) [31]

А чего вы ругаетесь, формула медвежонка она же для вычисления расстояния между точками на глобусе, а не на проекции Робинсона.

Ведь в [0] я так понимаю, это как раз и требовалось:


> 3) Функция расчета расстояния между двумя точками заданными
> географическими координатами. на входе 4 флоата, на выходе
> флоат


 
Медвежонок Пятачок ©   (2010-09-11 15:32) [35]

давай лучше так: ты читаешь хотя бы "Основы геодезии", а потом будешь людей оскорблять, ок?

Я тебя приятель за язык не тянул.

если ты надеешься на проекции Робинсона с твоей формулой получить хоть какую-нибудь точность

Причем здесь проекция робинсона, милейший?
Мой расчет оперирует координатами не обращая внимания на то, как именно они получены.

Приведи наконец свой вариант расчета. Мы определим обе погрешности, затем вычтем их и соотнесем к реальной длине .

После чего станет реально видно адекватность размера твоих понтов величине повышенной точности твоего расчета /*которого здесь второй день никто не видит */


 
Alx2 ©   (2010-09-12 00:05) [36]

Мои пять копеек:
Для расчета расстояния только по координатам мало данных. Довольно сильно влияет высота над уровнем моря. И рельеф, конечно.

Вряд ли есть практическая ценность от длины дуги на сфере.


 
@!!ex ©   (2010-09-12 08:29) [37]

нужна именно длина дуги на сфере.


 
Inovet ©   (2010-09-12 09:14) [38]

> [37] @!!ex ©   (12.09.10 08:29)
> на сфере

Ты же про плоскую карту говорил, а теперь глобус стал?


 
@!!ex ©   (2010-09-12 14:12) [39]

> [38] Inovet ©   (12.09.10 09:14)

Третья функция определение расстояния по географическим координатам. Где там плоская карта?


 
Inovet ©   (2010-09-12 16:29) [40]

> [39] @!!ex ©   (12.09.10 14:12)
> Третья функция определение расстояния по географическим
> координатам. Где там плоская карта?

Так почему третья, в ней о картах не говорится, зато говорится в 1, где тип проэкции неизвестен

> [0] @!!ex ©   (09.09.10 19:38)
> 1) Функция перевода географических координат в координаты
> на карте(карта в виде рисунка будет предоставлена, какой
> тип проекции используется я не знаю). на входе два флоата,
> на выходе два инта

да и на картинке был не глобус совсем. Разве не так?



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2011.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.005 c
2-1286626352
grisme
2010-10-09 16:12
2011.01.02
TService, TThread и запись в файл.


15-1285053273
vajo
2010-09-21 11:14
2011.01.02
Установка программы.


2-1286307307
Антон Т.
2010-10-05 23:35
2011.01.02
Заполнить формы в браузере где есть несколько фреймов


2-1286286239
alekslep
2010-10-05 17:43
2011.01.02
Delphi и 2 бд


2-1286617311
Первокурсница
2010-10-09 13:41
2011.01.02
При щелчке на ячейке DBGrid загружать изображение в Image1 из БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский