Skip to main content
Table of Contents

TTMSFNCGoogleMapsPolygon.AddHole Method

Adds an inner hole to the polygon.

API unit family: TMSFNCGoogleMaps Declaring type: TTMSFNCGoogleMapsPolygon

Syntax

FMX.TMSFNCGoogleMaps.hppPascalC++
function AddHole(ACoordinates: TTMSFNCMapsCoordinateRecArray): TTMSFNCMapsPolyElementHole; override;
virtual TTMSFNCMapsPolyElementHole* __fastcall AddHole(TTMSFNCMapsCoordinateRecArray ACoordinates);

Parameters

Name Description
ACoordinates Coordinates used by the operation.

Returns

The resulting maps poly element hole instance.

Usage examples

Add Complex Polygons with inner holes

Builds a Google Maps polygon and adds a hole for complex polygon rendering.

Add Complex Polygons with inner holesPascalC++
procedure TForm1.AddGoogleMapsComplexPolygon;
var
  LOuter: TTMSFNCMapsCoordinateRecArray;
  LInner: TTMSFNCMapsCoordinateRecArray;
  LPolygon: TTMSFNCGoogleMapsPolygon;
begin
  SetLength(LOuter, 4);
  LOuter[0].Latitude := 37.782;
  LOuter[0].Longitude := -122.447;
  LOuter[1].Latitude := 37.782;
  LOuter[1].Longitude := -122.425;
  LOuter[2].Latitude := 37.768;
  LOuter[2].Longitude := -122.425;
  LOuter[3].Latitude := 37.768;
  LOuter[3].Longitude := -122.447;

  SetLength(LInner, 4);
  LInner[0].Latitude := 37.778;
  LInner[0].Longitude := -122.441;
  LInner[1].Latitude := 37.778;
  LInner[1].Longitude := -122.431;
  LInner[2].Latitude := 37.772;
  LInner[2].Longitude := -122.431;
  LInner[3].Latitude := 37.772;
  LInner[3].Longitude := -122.441;

  LPolygon := TMSFNCGoogleMaps1.AddPolygon(LOuter, True);
  LPolygon.FillColor := gcDodgerblue;
  LPolygon.FillOpacity := 0.35;
  LPolygon.StrokeColor := gcNavy;
  LPolygon.AddHole(LInner);
end;
void __fastcall TForm1::AddGoogleMapsComplexPolygon()
{
  TTMSFNCMapsCoordinateRecArray LOuter;
  TTMSFNCMapsCoordinateRecArray LInner;

  LOuter.Length = 4;
  LOuter[0].Latitude = 37.782;
  LOuter[0].Longitude = -122.447;
  LOuter[1].Latitude = 37.782;
  LOuter[1].Longitude = -122.425;
  LOuter[2].Latitude = 37.768;
  LOuter[2].Longitude = -122.425;
  LOuter[3].Latitude = 37.768;
  LOuter[3].Longitude = -122.447;

  LInner.Length = 4;
  LInner[0].Latitude = 37.778;
  LInner[0].Longitude = -122.441;
  LInner[1].Latitude = 37.778;
  LInner[1].Longitude = -122.431;
  LInner[2].Latitude = 37.772;
  LInner[2].Longitude = -122.431;
  LInner[3].Latitude = 37.772;
  LInner[3].Longitude = -122.441;

  TTMSFNCGoogleMapsPolygon *LPolygon = TMSFNCGoogleMaps1->AddPolygon(LOuter, true);
  LPolygon->FillColor = gcDodgerblue;
  LPolygon->FillOpacity = 0.35;
  LPolygon->StrokeColor = gcNavy;
  LPolygon->AddHole(LInner);
}

Read the related guide