var
shp:Shapefile; // -
HandleLayer:integr; //
begin
shp:=CoShapefile.Create; // -
shp.Open('map.shp',nil); // 'map.shp'
Map1.Focused; // ,
HandleLayer:=Map1.AddLayer(shp,true); //
Map1.ZoomToMaxExtents; // ( ) ,
end;
procedure TImportForm.ShowShape;
var
nameDB:WideString; //
HandleLayer:integr;
begin
nameDB:=OpenDialog1.FileName; //
shp:=CoShapefile.Create;
shp.Open(nameDB,nil);
Map1.Focused;
HandleLayer:=Map1.AddLayer(shp,true);
Map1.ZoomToMaxExtents;
Delete(nameDB,length(nameDB)-2,3); //
nameDB:=nameDB+'dbf'; // ".dbf"
Table1.TableName:=nameDB; // "*.dbf"
Table1.Active:=True; //""
end;
procedure TImportForm.SaveShape;
var
i,j:integer; //
z:integer; // ,
begin
if shp<>nil then // shp
begin
Table1.First; //
k:=0;
for i:=0 to shp.NumShapes-1 do //
begin
z:=StrToInt(Table1.Fields[2].Value); //
for j:=0 to shp.Shape[i].numPoints-1 do //
begin
Mas[k].x:=shp.Shape[i].Point[j].x;
Mas[k].y:=shp.Shape[i].Point[j].y;
Mas[k].z:=z;
inc(k);
end;
Table1.Next; //
end;
..
//
..
end
else ShowMessage(' ');
end;
Source: https://habr.com/ru/post/123394/