Назначение


Свойство для работы с полигонами на карте.




Описание


Позволяет создавать/изменять/удалять полигоны на карте.



 Методы и свойства

 Описание

 function Add: TPolygonItem

 Создает новый объект полигона.

 procedure Bounds: TBounds

 Содержит координаты прямоугольной области, в которой расположены все полигоны.

 procedure Clear

 Удаляет все полигоны из колекции. При этом полигоны с карты удалены не будут. Используйте метод ClearPolygons для удаления полигонов одновременно с карты и из коллекции TPolygons

 property Count: Integer

 Возвращает количество полигонов в коллекции (TPolygons).

 procedure Delete(Index: Integer)

 Удаляет указанный полигон из колекции (TPolygons). При этом с карты полигон удален не будет. Для удаления полигона с карты используйте метод DeleteMapPolygon

 property Items[i]: TPolygonItem

 Возвращает указанный полигон.





Пример


procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
    PolygonItem: TPolygonItem;
begin
    // Круг
    PolygonItem := Form1.Map1.Polygons.Add;
    PolygonItem.Polygon.BackgroundOpacity := 50;
    PolygonItem.Polygon.BorderWidth := 2;
    // Настройка полигона с типом Круг
    PolygonItem.Polygon.PolygonType := ptCircle;
    PolygonItem.Polygon.Radius := 10000;
    PolygonItem.Polygon.Center.Latitude := 50;
    PolygonItem.Polygon.Center.Longitude := 2;
    Form1.Map1.CreateMapPolygon(PolygonItem.Polygon);


    // Прямоугольник
    PolygonItem := Form1.Map1.Polygons.Add;
    PolygonItem.Polygon.BackgroundOpacity := 50;
    PolygonItem.Polygon.BorderWidth := 2;
    //Настройка полигона с типом Прямоугольник
    PolygonItem.Polygon.PolygonType := ptRectangle;
    PolygonItem.Polygon.Bounds.NorthEast.Latitude := 52;
    PolygonItem.Polygon.Bounds.NorthEast.Longitude := 4;
    PolygonItem.Polygon.Bounds.SouthWest.Latitude := 50;
    PolygonItem.Polygon.Bounds.SouthWest.Longitude := 3;
    Form1.Map1.CreateMapPolygon(PolygonItem.Polygon);


    // Многоугольник
    PolygonItem := Form1.Map1.Polygons.Add;
    PolygonItem.Polygon.BackgroundOpacity := 50;
    PolygonItem.Polygon.BorderWidth := 2;
    //Настройка полигона с типом Многоугольник
    PolygonItem.Polygon.PolygonType := ptPath;
    PolygonItem.Polygon.Path.Add(50, 2);
    PolygonItem.Polygon.Path.Add(52, 4);
    PolygonItem.Polygon.Path.Add(50, 4);
    Form1.Map1.CreateMapPolygon(PolygonItem.Polygon);


    Form1.Map1.MapZoomTo(Form1.Map1.Polygons.Bounds); // Устанавливаем зум карты, чтобы помещались все существующие полигоны
end;