Страница 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 в северном полушарии только Курилы, кусок Сахалина и Японии.
Да это я проверял все подряд, это из последних настроек осталось

Но суть-то не в этом...
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
Прохожий
Не успел исправить предыдущий пост.

Я наконец-то понял!!! Решил исправить и поблагодарить, а Вы уже ответили.
Спасибо огромное!!!! Я все понял. Посидел, повозился с тем материалом что вы сбросили и до меня наконец-то дошло
Что бы я делал без Вас!!!! Еще раз огромное спасибо!!!!!
Re: Хочу создать два отдельных векторных слоя
Добавлено: 15 окт 2009, 02:25
AndreyL
You are Welcome!