  | 
				www.integro.ru ЦСИ ИНТЕГРО   
				 | 
			 
		 
		 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		Андрей
 
 
  Зарегистрирован: 18.04.2005 Сообщения: 47 Откуда: г. Калуга
  | 
		
			
				 Добавлено: Вт 12 Дек 2006 19:57    Заголовок сообщения: Как нарисовать линию по координатам | 
				     | 
			 
			
				
  | 
			 
			
				Имеется куча координат, требуется по ним нарисовать объект линией, точки нарисовать смог, а вот линию...    мож я чего не понимаю...  
 
Заранее спасибо | 
			 
		  | 
	 
	
		| Вернуться к началу | 
		 | 
	 
	
		  | 
	 
	
		RuslanG
 
  
  Зарегистрирован: 10.07.2005 Сообщения: 171 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Ср 13 Дек 2006 00:48    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Цитата: | 	 		  | точки нарисовать смог, а вот линию... | 	  
 
Скорее всего использовался для отображения символьный тип, т.е. был создан объект стилем с символьным методом отображения (в данном случае символом послужила "точка"). Если Вы стиль, отображающий линии создаете вручную, т.е. не программно, то посмотрите метод отображения в стиле.. Он должен быть "стандартным". Если программно создаете, то предлагаю посмотреть нижеследующий код.
 
Не знаю в какой среде и на каком языке Вы пишите код.. 
 
Пример на ObjectPascal, демонстрирующий создание новой карты, слоя, стиля со стандартным методом отображения и объекта с координатами из FPart.
 
 	  | Код: | 	 		  procedure CreateMapLayerAndObjectWithVertex;
 
   
 
   // Возвращает территорию активного проекта
 
   function GetArea: IIngeoArea;
 
   begin
 
      Result := FIngeo.ActiveProjectView.Project.Area;
 
   end;
 
   // Создает векторную карту с названием 'NewVectorMap' у территории anArea
 
   // Также включает карту в текущий проект
 
   function CreateVectorMap(anArea: IIngeoArea): IIngeoVectorMap;
 
   begin
 
      Result := anArea.Maps.AddVectorMap;
 
      Result.Name := 'NewVectorMap';
 
      Result.Update;
 
      if not FIngeo.ActiveProjectView.Project.Contents.Contains(Result.ID) then
 
         FIngeo.ActiveProjectView.Project.Contents.Add(Result.ID);
 
   end;
 
   // Создает слой у карты aVectorMap
 
   function CreateLayer(aVectorMap: IIngeoVectorMap): IIngeoLayer;
 
   begin
 
      Result := aVectorMap.Layers.Add;
 
      Result.Name := 'NewLayer';
 
      Result.Update;
 
   end;
 
   // Создает стиль у слоя aLayer
 
   function CreateStyle(aLayer: IIngeoLayer): IIngeoStyle;
 
   begin
 
      Result := aLayer.Styles.Add;
 
      Result.Name := 'NewStyle';
 
      Result.Update
 
   end;
 
   // Создает стандартный метод отображения у стиля aStyle
 
   function CreateStdPainter(aStyle: IIngeoStyle): IIngeoStdPainter;
 
   begin
 
      Result := aStyle.Painters.Add(inptStd) as IIngeoStdPainter;
 
      // При необходимости меняем параметры окантовки
 
      with Result.Pen do begin
 
         Style := inpsSolid;
 
         WidthInMM := 0;
 
         ForZoomScale := 0;
 
         Color := clBlack;
 
         Mode := inpmCopy;
 
      end;
 
      // При необходимости меняем параметры закраски
 
      with Result.Brush do begin
 
         Style := inbsSolid;
 
         BackColor := clWhite;
 
         HatchColor := clBlack;
 
         Transparency := 0;
 
      end;
 
      aStyle.Update;
 
   end;
 
   // Создаем пространственный объект в определенном слое
 
   function CreateMapObject(aMapObjects: IIngeoMapObjects; aLayer: IIngeoLayer): IIngeoMapObject;
 
   begin
 
      Result := aMapObjects.AddObject(aLayer.ID);
 
   end;
 
   // Добавляем фигуру определенного стиля в пространственный объект
 
   function CreateShape(aMapObject: IIngeoMapObject; aStyle: IIngeoStyle): IIngeoShape;
 
   begin
 
      Result := aMapObject.Shapes.Insert(-1, aStyle.ID);
 
   end;
 
   // Добавляем часть контура
 
   // aClosed - параметр, определяющий замкнутость части контура. 
 
   function CreateContourPart(aContour: IIngeoContour; aClosed: Boolean): IIngeoContourPart;
 
   begin
 
      Result := aContour.Insert(-1);
 
      Result.Closed := aClosed;
 
   end;
 
   // Добавляем вершину aVertex в часть контура
 
   procedure AddVertex(aContourPart: IIngeoContourPart; aVertex: TVertex);
 
   begin
 
      with aVertex do
 
         aContourPart.InsertVertex(-1, Point.x, Point.y, Convexity);
 
   end;
 
var
 
   i: Integer;
 
   aVertex: TVertex;
 
   anIngeoMapObjects: IIngeoMapObjects;
 
   anIngeoMapObject: IIngeoMapObject;
 
   anIngeoShape: IIngeoShape;
 
   anIngeoPart: IIngeoContourPart;
 
   anArea: IIngeoArea;
 
   aVectorMap: IIngeoVectorMap;
 
   aLayer: IIngeoLayer;
 
   aStyle: IIngeoStyle;
 
   aStdPainter: IIngeoStdPainter;
 
begin
 
   anIngeoMapObjects := FIngeo.ActiveDb.MapObjects;
 
   anIngeoMapObjects.TransactionName := 'Создание новых карты, слоя, стиля, метода отображения и объектов';
 
   anArea := GetArea;
 
   aVectorMap := CreateVectorMap(anArea);
 
   aLayer := CreateLayer(aVectorMap);
 
   aStyle := CreateStyle(aLayer);
 
   aStdPainter := CreateStdPainter(aStyle);
 
   anIngeoMapObject := CreateMapObject(anIngeoMapObjects, aLayer);
 
   anIngeoShape := CreateShape(anIngeoMapObject, aStyle);
 
   // FPart - часть контура, где хранятся координаты (вершины)
 
   // FPart необходимо будет подменить Вашей структурой хранения координат
 
   anIngeoPart := CreateContourPart(anIngeoShape.Contour, FPart.Closed);
 
   for i := 0 to Length(FPart.Vertexes) - 1 do begin
 
      aVertex := FPart.Vertexes[i];
 
      AddVertex(anIngeoPart, aVertex);
 
   end;
 
   anIngeoMapObjects.UpdateChanges;
 
end; | 	 
  _________________ С уважением, Руслан Гадеев
 
Видео уроки ИнГео
 
Документация ИнГео
 
Обновления ИнГео
 
Интегропедия | 
			 
		  | 
	 
	
		| Вернуться к началу | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
  | 
   
 
		 |