Страница 1 из 1
					
				Извлечь координаты полилинии
				Добавлено: 02 фев 2015, 21:01
				 KatyaBojko
				Здравствуйте, уважаемые знатоки Mapinfo.
Подскажите, как решить такую задачу:
Нарисован ряд полилиний. При выделении одной из них и нажатии F7 на экран высвечивается геоинформация, в которой прописаны координаты начала и конца полилинии.
Подскажите, как можно извлечь эти данные в табличную форму? Если программа выдаёт эти данные, значит они где-то содержатся!
Во вложении - пример задачи.
Спасибо всем. Буду рада любым ответам!
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 02 фев 2015, 21:11
				 gamm
				KatyaBojko писал(а):Подскажите, как решить такую задачу
RTFM, export MIF/MIF
 
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 02 фев 2015, 22:42
				 KatyaBojko
				Спасибо, конечно.
Но, нельзя ли более подробнее, потому как при экспорте в mid/mif и дальнейшем его импорте, ничего не происходит.
И если можно, без RTFM!
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 02 фев 2015, 23:08
				 thegeo
				Открываете полученный MIF в Блокноте и используете координаты по вашему усмотрению, например, копируете в Excel или Word.
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 03 фев 2015, 02:21
				 Boris
				На приведенном снимке нет полилинии. На нем показана линия - один сегмент, одна часть, не изгибов (в этой проекции). Подозреваю, что и вершин в ней то же только две.
Вот теперь либо покажите MIF, либо расскажите, что собственно делаете и главное какой результат ищите. Пока что показанное решается действительно через MIF, либо через 3-4 запроса+руками сделать движения.
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 03 фев 2015, 07:18
				 Sibit
				У вас нарисованы линии. Для линий в обновить колонку пишите: ObjectgeoGraphy(Obj,X) где X от 1 до 4 (надеюсь, разберетесь что к чему). Для полилиний ObjectNodeX(Obj,i,j) и ObjectNodeY(Obj,i,j) где i - номер сегмента, j - номер точки. Последняя точка в сегменте дает функция ObjectInfo( obj, 21 + i )  где i - номер сегмента.
PS Остальное можно прочитать в документации 
PPS И не забудьте в Настройки>Режимы>Окно карты>Проекция для сеанса убедиться что эта проекция совпадает с проекцией вашей таблицы.
 
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 03 фев 2015, 07:26
				 gamm
				KatyaBojko писал(а):И если можно, без RTFM
без чтения мануала никак нельзя - там написано, что в файле MIF содержится желанная текстовая табличка с координатами полилинии. А также то, что бывают PLINE и LINE (на картинке - последнее, судя по всему). И много еще разного интересного  

 
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 03 фев 2015, 10:44
				 KatyaBojko
				Всем спасибо огромное!
У меня в таблице имеются как линии, так и полилинии. Атрибутивная таблица содержит информацию, как то - номер линии, её данные. Мне необходимо было заполнить эту таблицу еще и координатами начала и конца линий.
Содержание файла MIF не удобен в моём случае, так как координаты, которые отображаются, не привязаны, например к номеру линии. Метод с обновлением колонки подошёл. Использовала оператор ObjectgeoGraphy(Obj,X), только X - от 1 до 4 это, соответственно X1, Y1, X2, Y2.
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 03 фев 2015, 10:47
				 KatyaBojko
				[quote="Sibit"]У вас нарисованы линии. Для линий в обновить колонку пишите: ObjectgeoGraphy(Obj,X) где X от 1 до 4 (надеюсь, разберетесь что к чему). Для полилиний ObjectNodeX(Obj,i,j) и ObjectNodeY(Obj,i,j) где i - номер сегмента, j - номер точки. 
Спасибо Вам. Меня именно интересовал метод с обновлением колонки!
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 04 фев 2015, 00:40
				 Boris
				KatyaBojko писал(а):Sibit писал(а):У вас нарисованы линии. Для линий в обновить колонку пишите: ObjectgeoGraphy(Obj,X) где X от 1 до 4 (надеюсь, разберетесь что к чему). Для полилиний ObjectNodeX(Obj,i,j) и ObjectNodeY(Obj,i,j) где i - номер сегмента, j - номер точки. 
Спасибо Вам. Меня именно интересовал метод с обновлением колонки!
 
Не хотелось бы вас огорчать, но вы получили форменную глупость этим запросом, в случае если у вас были полиниии.
Потому что для линий 1 и 2 - это координаты начала линии, а 3 и 4 - это конец. Для всех остальных фигур - это наименьшие и наибольшие координаты MBR (минимального охватывающего прямоугольника в выбранной проекции):
OBJ_GEO_MINX 
 Minimum x-coordinate of an object's minimum bounding rectangle (MBR), unless the object is a line; if the object is a line, returns same value as OBJ_GEO_LINEBEGX.
 
Для правильного ответа на вопрос необходимо использовать еще и функцию ObjectInfo( ) для получения количества точек в полилинии (и всех ее сегментах). Если конечно вопрос был именно в координатах начала и конца, а не что то подразумеваемое, но иное.
 
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 04 фев 2015, 05:44
				 Sibit
				Boris писал(а):
Не хотелось бы вас огорчать, но вы получили форменную глупость этим запросом, в случае если у вас были полиниии.
Что ж вы так в людей не верите? Может автор догадался в два приема таблицу обновить.
 
			 
			
					
				Re: Извлечь координаты полилинии
				Добавлено: 05 фев 2015, 02:41
				 Boris
				Я в людей как раз верю. И потому отметил, что без знания количества сегментов, если они не в одну линию, а ветвятся, то это вообще все дает неопределенность, и количества вершин в последнем из них, получите то, что сказано выше. В самом крайнем случае, линию указывающую перпендикулярно искомой.