Страница 2 из 2

Re: Хочу создать два отдельных векторных слоя

Добавлено: 10 окт 2009, 23:42
AndreyL
Прохожий писал(а):Правда немного в первое время смущали данные вытянутые им в угловых расстояниях...
Что значит "в угловых расстояниях"?

Re: Хочу создать два отдельных векторных слоя

Добавлено: 11 окт 2009, 01:36
Прохожий
Ммм... Вот в таких http://gis-lab.info/qa/great-circles.html. Может просто я не правильно выразился?
Идут они вот в таком виде 0,001335. Это явно не метры, ни километры.

Re: Хочу создать два отдельных векторных слоя

Добавлено: 11 окт 2009, 17:22
AndreyL
У Вас, наверное, точечный слой (городов) в географических координатах (в градусах). Можно попробовать перевести его в какую-нибудь прямоугольную проекцию, чтобы координаты в метрах были. Иначе будет не совсем кратчайшее расстояние - масштабы разные за счет схождения меридианов.

Re: Хочу создать два отдельных векторных слоя

Добавлено: 13 окт 2009, 12:17
Прохожий
Отдал пару дней на изучение этого вопроса. Наверно что-то не так делаю. Результат не меняться. Выбирал разные географические системы а все остается как было. :(
p. s. Вот что пишет при поиске расстояния :
Выполнение команды: Near Nas_punkt Reki
# NO_LOCATION NO_ANGLE Nas_punkt

Nas_punkt - слой населенных пунктов.

Вот данные из Свойства слоя, закладка Источник:
Тип данных: Класс пространственных объектов шейп-файла
Шейп-файл: K:\Project\PMP\Nas_punkt.shp
Тип геометрии: Точка

Система координат проекции: WGS_1984_UTM_Zone_55N
Проекция: Transverse_Mercator
False_Easting: 500000,00000000
False_Northing: 0,00000000
Central_Meridian: 147,00000000
Scale_Factor: 0,99960000
Latitude_Of_Origin: 0,00000000
Линейная единица: Meter

Географическая система координат: GCS_WGS_1984
Датум: D_WGS_1984
Начальный меридиан: Greenwich
Угловая единица: Degree

Те же данные по слою рек:

Тип данных: Класс пространственных объектов шейп-файла
Шейп-файл: K:\Project\PMP\Reki.shp
Тип геометрии: График

Система координат проекции: WGS_1984_UTM_Zone_55N
Проекция: Transverse_Mercator
False_Easting: 500000,00000000
False_Northing: 0,00000000
Central_Meridian: 147,00000000
Scale_Factor: 0,99960000
Latitude_Of_Origin: 0,00000000
Линейная единица: Meter

Географическая система координат: GCS_WGS_1984
Датум: D_WGS_1984
Начальный меридиан: Greenwich
Угловая единица: Degree

Re: Хочу создать два отдельных векторных слоя

Добавлено: 13 окт 2009, 14:33
AndreyL
Прохожий писал(а):Отдал пару дней на изучение этого вопроса. Наверно что-то не так делаю. Результат не меняться. Выбирал разные географические системы а все остается как было.
Круто! В 55-ой зоне UTM в северном полушарии только Курилы, кусок Сахалина и Японии.
Ну да ладно, вопрос не в том. Расскажите, как проверяли. По идее, если Вы в таблицу точек (городов) кроме расстояний будете писать еще и координаты ближайших точек на реках (в Near поставить галочку LOCATION), то точки двух слоев (если один слой городов в географических, а другой в прямоугольных) не совпадут. Если Вы теперь построите линейный слой, где линии соединяют исходные точки (города) с ближайшими точками на реках, и рассчитаете их длину в метрах (калькулятором геометрии), то длины тоже не совпадут.

Re: Хочу создать два отдельных векторных слоя

Добавлено: 13 окт 2009, 14:52
Прохожий
AndreyL писал(а): Круто! В 55-ой зоне UTM в северном полушарии только Курилы, кусок Сахалина и Японии.
Да это я проверял все подряд, это из последних настроек осталось :oops: Но суть-то не в этом...
AndreyL писал(а): Ну да ладно, вопрос не в том. Расскажите, как проверяли. По идее, если Вы в таблицу точек (городов) кроме расстояний будете писать еще и координаты ближайших точек на реках (в Near поставить галочку LOCATION), то точки двух слоев (если один слой городов в географических, а другой в прямоугольных) не совпадут. Если Вы теперь построите линейный слой, где линии соединяют исходные точки (города) с ближайшими точками на реках, и рассчитаете их длину в метрах (калькулятором геометрии), то длины тоже не совпадут.
Самый простой способ как это проверял, создал новую карту, загрузил один слой, к примеру рек. И взял обычный инструмент Измерить. Ну, тот который с линеечкой и вопросительным знаком над ним. Вот что он к примеру показывает:
Изображение
Это совсем непонятно что показывает. Да и в реальности цифры там совершенно другие...

Re: Хочу создать два отдельных векторных слоя

Добавлено: 13 окт 2009, 17:20
AndreyL
Я только не понял, а чего измерял-то линеечкой? Длину рек, что ли? А где сами точки-города? К тому же, если измеряете линеечкой, то менять надо не проекцию слоя, а проекцию вида.
Но разговор шел о том, что ближайшая точка будет находится по разному в прямоугольных и в географических координатах. Попробуйте вынести на карту ближайшие точки для разных проекций, и все увидите.

Re: Хочу создать два отдельных векторных слоя

Добавлено: 14 окт 2009, 11:04
Прохожий
Я понимаю что ничего не понимаю. На данном рисунке я просто продемонстрировал что при измерении расстояния между устьями рек, результат даже Линейкой не выдается в метрической системе. Такая же ситуация и со слоем населенных пунктов. Соответственно при вычислении минимального расстояния от нас. пункта до объекта результат тоже получается не в метрической системе. Хотя у каждого слоя Линейная единица: Meter :(

Re: Хочу создать два отдельных векторных слоя

Добавлено: 14 окт 2009, 11:48
AndreyL
Закинте шейпы архивом, и заодно, скажите, какая это территория

Re: Хочу создать два отдельных векторных слоя

Добавлено: 14 окт 2009, 12:03
Прохожий
Прикрепил архив. Территория, западная Беларусь, приграничье с Литвой.

Re: Хочу создать два отдельных векторных слоя

Добавлено: 14 окт 2009, 16:12
AndreyL
Так. Во-первых, у Вас экстент городов значительно больше экстента рек. Я взял только те города, которые более-менее рядом с рекой, это слой Towns. Далее считаем по этому слою расстояние до ближайшей реки и координаты точки на реке, которая ближе всего к городу [поля NEAR_X и NEAR_Y]. Кроме того получаем координаты самой точки - города [поля POINT_X и POINT_Y]. Теперь по полученным координатам строим линии, соединяющие города с ближайшими точками на реках (слой ConnectLines) и считаем их длину в метрах.
Перепроектируем слой Towns в UTM 35N, получаем слой TownsUTM. Повторяем для него все процедуры и видим, что от того, в какой проекции находился слой зависит не только численное значение расстояния, но и то, до какой реки будет ближе: в географической системе ближе до одной реки, в прямоугольной - до другой.

Re: Хочу создать два отдельных векторных слоя

Добавлено: 15 окт 2009, 00:47
Прохожий
Брр.... Я совсем запутался... То что Вы объяснили мне, это все замечательно. Но это совершенно не приблизило меня к решению задачи. Хорошо, давайте так. Я взял топографическую карту километровку. Взял линейку. Замерил расстояние от точки А до точки Б. Посчитал руководствуясь масштабом и оно, к примеру, получилось 500 м. В реальности оно составит то же расстояние. Стоит ли мне думать в этом случае, в географической системе карта или в прямоугольной? Тоже самое и здесь. Я привязал километровку. На основе нее создал слой нас. пунктов и слой рек. Сохранятся расстояния в данном случае? Логика подсказывает что сохранятся. Так почему у меня вместо 500 метров получается что-то вроде 0,00003245? Вот что меня сейчас интересует. Как получить реальные метры?

Re: Хочу создать два отдельных векторных слоя

Добавлено: 15 окт 2009, 01:27
AndreyL
Прохожий писал(а):Стоит ли мне думать в этом случае, в географической системе карта или в прямоугольной? Тоже самое и здесь. Я привязал километровку. На основе нее создал слой нас. пунктов и слой рек. Сохранятся расстояния в данном случае? Логика подсказывает что сохранятся.
Логика подвела. Если Вы на Вашу карту нанесете сетку с географическими координатами, то увидите, что это не квадратики, а прямоугольники. Одна секунда по широте около 30 метров, а по долготе около 20. Если одна река находится к северу на 550 метров, то это 18 с копейками секунд, а вторая к востоку на 450 метров, то это 22 с половиной секунды. Получается, что в географических координатах северная река ближе.
Другой вариант: отобразите Вашу карту в географической проекции и посмотрите, как ее поколбасит. Сохранятся после этого расстояния?

Re: Хочу создать два отдельных векторных слоя

Добавлено: 15 окт 2009, 01:47
Прохожий
Не успел исправить предыдущий пост. :oops: Я наконец-то понял!!! Решил исправить и поблагодарить, а Вы уже ответили. :oops:
Спасибо огромное!!!! Я все понял. Посидел, повозился с тем материалом что вы сбросили и до меня наконец-то дошло :)
Что бы я делал без Вас!!!! Еще раз огромное спасибо!!!!!

Re: Хочу создать два отдельных векторных слоя

Добавлено: 15 окт 2009, 02:25
AndreyL
You are Welcome!