  | 
				www.integro.ru ЦСИ ИНТЕГРО   
				 | 
			 
		 
		 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		Iron_Man
 
 
  Зарегистрирован: 02.09.2011 Сообщения: 20
 
  | 
		
			
				 Добавлено: Пт 02 Сен 2011 12:04    Заголовок сообщения: Изменение параметров контура | 
				     | 
			 
			
				
  | 
			 
			
				Добрый день, вопрос в следующем: рисую на карте контур:
 
 	  | Код: | 	 		  apObjects := anApp.ActiveDb.MapObjects;
 
  MapObject := MapObjects.AddObject(aLayerID);
 
  Contour := MapObject.Shapes.Insert(-1, aStyleID).Contour;
 
  Part := Contour.Insert(-1);
 
  for i := 0 to Length(Xs) - 1 do
 
  Part.InsertVertex(-1, Xs[i], Ys[i], Cs[i]);
 
  Part.Closed := Closed;
 
  OBJ_ID := MapObject.ID;
 
  MapObjects.UpdateChanges; | 	  
 
Хотелось бы программно отредактировать координаты этого контура, как это сделать? Решение удалить старый контур, и нарисовать новый, не подходит. Спасибо. | 
			 
		  | 
	 
	
		| Вернуться к началу | 
		 | 
	 
	
		  | 
	 
	
		RuslanG
 
  
  Зарегистрирован: 10.07.2005 Сообщения: 171 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Пт 02 Сен 2011 13:07    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				С помощью метода SetVertex.
 
Например, так:
 
 	  | Код: | 	 		  procedure TTestForm.EditCoordTestButtonClick(Sender: TObject);
 
var
 
   aMapObjects: IIngeoMapObjects;
 
   aMapObject: IIngeoMapObject;
 
   aContour: IIngeoContour;
 
   aPart: IIngeoContourPart;
 
   aX, aY, aC: Double;
 
begin
 
   aMapObjects := Fingeo.ActiveDb.MapObjects;
 
   // Получаем объект
 
   aMapObject := aMapObjects.GetObject('000100001B93');
 
   if aMapObject.Shapes.Count > 0 then begin
 
      // Получаем контур
 
      aContour := aMapObject.Shapes[0].Contour;
 
      if aContour.Count > 0 then begin
 
         // Получаем часть контура
 
         aPart := aContour[0];
 
         if aPart.VertexCount > 0 then begin
 
            // Получаем первую координату (необязательно)
 
            aPart.GetVertex(0, aX, aY, aC);
 
            // Изменяем первую координату
 
            aPart.SetVertex(0, aX + 10, aY, aC);
 
         end;
 
      end;
 
   end;
 
   aMapObjects.UpdateChanges;
 
end; | 	 
  _________________ С уважением, Руслан Гадеев
 
Видео уроки ИнГео
 
Документация ИнГео
 
Обновления ИнГео
 
Интегропедия | 
			 
		  | 
	 
	
		| Вернуться к началу | 
		 | 
	 
	
		  | 
	 
	
		Iron_Man
 
 
  Зарегистрирован: 02.09.2011 Сообщения: 20
 
  | 
		
			
				 Добавлено: Пт 02 Сен 2011 16:47    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Руслан, спасибо, всё работает. | 
			 
		  | 
	 
	
		| Вернуться к началу | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
  | 
   
 
		 |