powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Мне нужно найти расстояние между населёнными пунктами на Земле.
28 сообщений из 28, показаны все 2 страниц
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39273247
Алиса С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При этом не кратчайшее, а которое выведет гугл для автомобиля. Как это сделать с помощью гугл апи? или любого другого сервиса с картой мира?
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39273274
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алиса С,

Вот пример на Java: https://habrahabr.ru/post/148986/
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39273428
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39273619
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizвизиком Этой карте можно верить? Актуальность предоставления данных вызывает вопросы, в частности - географические наименования объектов - не всегда соответствуют действительности, что уже говорить о дорогах/маршрутах?
альтернативный вариант: OSM , причем достаточно просто поднимается на своем сервере, что позволяет избежать ограничения по количеству запросов, присущее public GIS-серверам.
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39274107
Алиса С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

Спасибо! Думаю на php будет легко переписать.
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277086
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmktchingizвизиком Этой карте можно верить? Актуальность предоставления данных вызывает вопросы, в частности - географические наименования объектов - не всегда соответствуют действительности, что уже говорить о дорогах/маршрутах?
ну, найдите существенное отличие
тут яндекс
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277087
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут визиком
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277089
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут осм
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277105
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizнайдите существенное отличие
Вот тебе пяток отличий (намеренно не искал - ориентировался по старой памяти в наименованиях).
46.966313,31.994577
46.95873,32.011088
46.964659,32.070547
46.966565,32.078767
46.970784,32.067781
Повторю вопрос: такой карте можно верить? Ты действительно считаешь ее актуальной?
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277153
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmktchingizнайдите существенное отличие
Вот тебе пяток отличий (намеренно не искал - ориентировался по старой памяти в наименованиях).
46.966313,31.994577
46.95873,32.011088
46.964659,32.070547
46.966565,32.078767
46.970784,32.067781
Повторю вопрос: такой карте можно верить? Ты действительно считаешь ее актуальной?
46.966313,31.994577 - проспект Ленина на Визикоме?
так не угонишься за этой зрадой.

а расстояния тут причем?
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277177
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz,

Дело не в наименованиях объектов, а в самом поддержании карты в актуальном состоянии. Если переименовать объекты - это достаточно просто, но не делается, то состояние путей/маршрутов/дорог - тем более вызывает сомнение. Для примера - возьму другие GIS - гугл - не знаю, не отслеживал, но мне кажется - достаточно стабильно отслеживают состояние объектов (особенно привлекает поддержка панорам в API), яндекс - ой туго: неоднократно указывал им на ошибки (касалось путей/дорог), но худо-бедно - исправляли, хотя и не всё. Лучше всего - ОСМ, и это не удивительно. Я так понимаю, ты строишь какую-то картографическую систему. Если в маршрутизации будут погрешности, или хуже - ошибки, транспортники назабивают большую кучу голов в твои ворота, поэтом будь бдителен в использовании GIS, которые не смогут например найти не существующий для них адрес, хотя этот адрес реально существует; проложат маршрут, по которому не существует дороги, или тем паче, как Сусанин поведут в такой обход...
Я не против использования тобой Визикома, но лично я не стал бы его использовать, поскольку "косяки" видны невооруженным глазом, а если копнуть поглубже, то, возможно, слюны не хватит отплеваться (шучу).
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277338
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277340
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmk,
ты случаем не Москус с Хабры?
https://habrahabr.ru/users/Moskus/
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277378
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizhclubmk,
ты случаем не Москус с Хабры?
https://habrahabr.ru/users/Moskus/
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277380
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizhclubmk,
ты случаем не Москус с Хабры?
https://habrahabr.ru/users/Moskus/ нет, не мой профиль.
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277576
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmk,
а ты там чтото пишешь?
У Москуса приличные статьи, наверно, придется ссылаться, а я без фамилии не люблю.
А как на захабреных ссылаются?
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39277810
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz,
Да я по статьям не ударяю.
авторУ Москуса приличные статьи, наверно, придется ссылаться, а я без фамилии не люблю.
А как на захабреных ссылаются?
Попробуй ч/з службу поддержки запросить
https://habrahabr.ru/feedback/
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39290206
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шо за язык

http://vasnake.blogspot.ru/2006/12/blog-post_15.html function nmea2DecDegree($nmeaCoord) { // decimal(9,7), convert nmea ddmm.mmmm (dddmm.mmmm) to decimal degree
$res = 0.0;
$pp = strpos($nmeaCoord, '.');
if ($pp === false || $pp <>

$d = substr($nmeaCoord, 0, $pp-2);
$m = substr($nmeaCoord, $pp-2);
$res = (double)$d + ((double)$m / 60.0);
return $res;
}


ну а теперь посчитаем расстояние в метрах и азимут в градусах:


function calcDistance ($StartLat, $StartLon, $EndLat, $EndLon) { // array, 'dist' => 'x' meters, 'bearing' => 'y' degree; from decimal degree coords
//~ 10 сантиметров точность, когда
//~ abs(lon1-lon2) <= 0.0000014
//~ abs(lat1-lat2) <= 0.0000008
$res = array('dist'=>0.0, 'bearing'=>0.0);
$StartLat = (double)str_replace(',', '.', $StartLat); $StartLon = (double)str_replace(',', '.', $StartLon);
$EndLat = (double)str_replace(',', '.', $EndLat); $EndLon = (double)str_replace(',', '.', $EndLon);

if ($StartLat == 0.0 || $StartLon == 0.0 || $EndLat == 0.0 || $EndLon == 0.0) return $res;
if ( abs($StartLon - $EndLon) <= 0.0000014 && abs($StartLat - $EndLat) <= 0.0000008 ) return $res;

$D2R = 0.01745329251994330; // Pi/180
$R2D = 57.29577951308230000; // 180/Pi
/*
// http://www.pcigeomatics.com/cgi-bin/pcihlp/PROJ|EARTH MODELS|ELLIPSOIDS
// ELLIPS Descriptor Semi-Major Axis (A) (metres) Semi-Minor Axis (B) (metres)
// 12 WGS 1984 6378137.000000 6356752.314245
// 15 Krassovsky 1940 6378245.000000 6356863.018800
*/
$a = 6378137.0; // Semi-major axis of ellipsoid in meters
// $b = 6356752.314245; // Semi-minor axis of ellipsoid
$e2 = 0.00673949674233346; // 2nd eccentricity squared Geocent_ep2 = (Geocent_a2 - Geocent_b2) / Geocent_b2

$fdLambda = ($StartLon - $EndLon) * $D2R;
$fdPhi = ($StartLat - $EndLat) * $D2R;
$fPhimean = ($StartLat + $EndLat) / 2.0 * $D2R;
$fTemp = 1 - $e2 * pow( sin($fPhimean), 2);
$fRho = $a * (1 - $e2) / pow($fTemp, 1.5);
$fNu = $a / sqrt(1 - $e2 * sin($fPhimean) * sin($fPhimean) );
$fz = 2 * asin(sqrt (
pow(sin( $fdPhi / 2.0), 2 ) + cos( $EndLat * $D2R )
* cos( $StartLat * $D2R ) * pow(sin($fdLambda / 2.0), 2)
) );

$fAlpha = asin(cos( $EndLat * $D2R ) * sin($fdLambda) / sin($fz) );
$fR = $fRho * $fNu / ($fRho * pow(sin($fAlpha), 2) + $fNu * pow(cos($fAlpha), 2));
$res['dist'] = $fz * $fR;

if ($res['dist'] <= 0.999) return $res;

$Bearing = abs($fAlpha * $R2D);
if (($StartLat <= $EndLat) and ($StartLon > $EndLon)) $Bearing = 360 - $Bearing;
elseif (($StartLat > $EndLat) and ($StartLon >= $EndLon)) $Bearing = 180 + $Bearing;
elseif (($StartLat > $EndLat) and ($StartLon < $EndLon)) $Bearing = 180 - $Bearing;

$res['bearing'] = $Bearing;
return $res;
}
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39290231
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizшо за язык
PHP?
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39294201
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алиса С,

Google maps API на пример
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39331852
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmktchingiz,
проложат маршрут, по которому не существует дороги, или тем паче, как Сусанин поведут в такой обход...(шучу).
зачем мне эти дороги? (шучу)
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39332131
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он?

...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39332336
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmk
Он?


)) вообще говоря, не знаю.
Мне дают трек и фотки и требуют (только щас, быстро и все сразу) фотоплан сделать
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39333389
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz,
Судя по скрину трека, речь идет о площади ~90 км². Представляю, сколько приходится обрабатывать фотографий (не думаю, что всё укладывается в несколько панорамных снимков). Фотоплан получается "накидной", или производятся ещё какие то преобразования для "безшовности"? И да, в плане академического изучения вопроса, не подскажешь, что стоит почитать, чтоб воды поменьше было?
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39335142
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока никакого не получается. В качестве эксперимента пытались просто нагенерировать карту на тайлах из 19 зума. Не выходит каменный цветок ))

на этом треке больше чем 400 снимков
авторФотоплан получается "накидной", или производятся ещё какие то преобразования для "безшовности"
если сделать привязку каждой фотки к геодезической сети в той или иной форме, наверно,
получится безшовный

авторИ да, в плане академического изучения вопроса, не подскажешь, что стоит почитать, чтоб воды поменьше было?
не допонял?
мучаюсь со сфероидической геодезией
Гавриленко Ю.Н. Основы сфероидической геодезии -- вроде конкретная
Есть еще Морозов, Вахромеева и Серапинас.\

гдето попадались лабораторные вроде как от Гавриленко (по общему виду понравились, но попались после того как я все закончил), но не помню где
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39335214
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати. все время забываю.
Принципы аэрофотограметрии стр.120 Руководство по Всемирной геодезической системе
1984. 2002, Международная организация гражданской авиации
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39337454
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вспомнил.
один из штатных способов

https://ru.wikipedia.org/wiki/World-файл

когда я пробовал подсовывать эти файлы установленным гисам, они отображали все правильно
...
Рейтинг: 0 / 0
Мне нужно найти расстояние между населёнными пунктами на Земле.
    #39339355
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmktchingiz,
Судя по скрину трека, речь идет о площади ~90 км². Представляю, сколько приходится обрабатывать фотографи?
в качестве нулевого приближения пробовали сгенерировать карту из тайлов 19 масштаба.
Обводим район и потом генерится карта.
на 14 зуме из картинки ниже получается 9 метров.
На 13 зуме область размером с тайл местного зума приводит к эксепшену
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Мне нужно найти расстояние между населёнными пунктами на Земле.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]