Скрипт для отримання даних про полiгон (простий, складний чи збiрний). Для використання скопiюйте бiблiотеку PointInPoly.dsf в папку Library (в папцi Digitals)
$Obj=@Map.SelectedObject
$Poly=@Map.GetObjectCoordinates $Obj
@Text.Text=$Poly
@Text.Delete 1-3
$Count=@Text.Count
$I=1
$S=
%Cycle
$Line=@Text.Line[$I]
@If ("$Line"="") Then @Goto %Complex
$X=@StringPart 2 $Line
$Y=@StringPart 3 $Line
$Z=@StringPart 4 $Line
$XYZ=$X $Y $Z
@If $S= Then $S=$XYZ Else $S=$S $XYZ
$I=$I+1
@If $I<=$Count Then @Goto %Cycle
@Dialog.Message Простий полiгон
@Goto %End
%Complex
$Line=@Text.Line[$I]
@If ("$Line"="") Then @Goto %SkipLine
$X=@StringPart 2 $Line
$Y=@StringPart 3 $Line
$Z=@StringPart 4 $Line
;
$Param=$X $Y $Z $Poly
$Res=%Library.PointInPoly $Param
@If $Res=0 Then @Goto %Composite
;
%SkipLine
$I=$I+1
@If $I<=$Count Then @Goto %Complex
@Dialog.Message Складний полiгон
@Goto %End
%Composite
@Dialog.Message Збiрний полiгон
;
%End
Ф-цiя PointInPoly повертає значення 0-3, положення точки вiдносно полiгону (0-точка за межами полiгону, 1-точка в межах полiгону, 2-координати точок спiвпадають, 3-точка лежить на контурi полiгону).
Параметрами ф-цiї є: координати точки (X Y Z) та данi змiнної, отриманої за допомогою ф-цiї @Map.GetObjectCoordinates.
Також додав данi функцiї в бiблiотеку GeoGed (для тих, хто користується)