GIS软件开发复习资料.docx
- 文档编号:29903256
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:8
- 大小:15.59KB
GIS软件开发复习资料.docx
《GIS软件开发复习资料.docx》由会员分享,可在线阅读,更多相关《GIS软件开发复习资料.docx(8页珍藏版)》请在冰豆网上搜索。
GIS软件开发复习资料
GIS软件开发复习资料
独立值专题图
procedureTForm1.Button1Click(Sender:
TObject);
var
currentlayer:
imomaplayer;
myvaluerenderer:
imovaluemaprenderer;
currentrecord:
imorecordset;
str:
imostrings;
i:
integer;
begin
myvaluerenderer:
=covaluemaprenderer.create;
str:
=costrings.Create;
currentlayer:
=comaplayer.create;
currentlayer:
=imomaplayer(mainmap.layers.item(country));
currentlayer.Renderer:
=myvaluerenderer;
currentrecord:
='region'
whilenotcurrentrecord.EOFdo
begin
str.Add(currentrecord.fields.Item('region').ValueAsString);
currentrecord.MoveNext;
end;
myvaluerenderer.ValueCount:
=str.Count;
fori:
=0tostr.Count-1do
begin
myvaluerenderer.Value[i]:
=str.Item(i);
end;
mainmap.refresh;
end.
获取图层名
functiongetlayername(map:
tmap):
Tstrings;
var
i:
integer;
layernames:
Tstrings;
begin
layernames:
=Tstringlist.Create;
fori:
=0tomap.Layers.Count-1do
begin
layernames.Add(imomaplayer(map.Layers.Item(i)).Name);
end;
result:
=layernames;
end;
获取字段名
functiongetfilename(map:
tmap;layername:
string):
Tstrings;
var
currentrecordset:
imorecordset;
currenttabledesc:
imotabledesc;
i:
integer;
filenames:
tstrings;
begin
filenames:
=tstringlist.create;
currentrecordset:
=imomaplayer(map.Layers.Item(layername)).Records;
currenttabledesc:
=currentrecordset.TableDesc;
fori:
=0tocurrenttabledesc.FieldCount-1do
begin
filenames.Add(currenttabledesc.FieldName[i]);
end;
result:
=filenames;
end;
获取值
functiongetfilevalue(map:
tmap;layername:
string;filedname:
string):
Tstrings;
var
currentrecord:
imorecordset;
currentvalues:
string;
values:
Tstrings;
begin
values:
=Tstringlist.Create;
currentrecord:
=imomaplayer(map.Layers.Item(layername)).Records;
whilenotcurrentrecord.EOFdo
begin
currentvalues:
=currentrecord.fields.Item(filedname).ValueAsString;
//ifallvalue.IndexOf(currentvalues)<0then
values.Add(currentvalues);
currentrecord.MoveNext;
end;
result:
=values;
end;
地图查询功能
Public//定义公共变量
QueryResult:
imorecordset
ProcedureTsearchExpression.FormShow(Sender:
TObject);
begin
CbbLayer.Items:
=getlayername(mainmap);
end;
procedureTsearchExpression.CbblayerChange(Sender:
TObject);
begin
lbvalues.Items:
=getfilename(mainmap.cbblayer.text);
end;
procedureTsearchExpession.cbsearchclick(seader:
Tobject)
var
currentlayer:
imomaplayer;
begin
currentlayer:
=commaplayer(mainmap.layer.Item(cbblayer.text));
Queryresult:
=currentlayer.searchexpession(mmExpession.text);
mainfrm.mainmap.refresh.
end;
查询结果显示
procedureTmianfrm.mainmapAfterLayerDraw(ASender:
TObject;index:
Smallint;);
var
mysymbol;imosymbol;
begin
mysymbol:
=cosymbol.Create;
mysymbol.color:
=mored;
ifassigned(searchExpressionfrm.Queryresult)then
mainmap.drawshap(searchExpressionfrm.Queryresult,mysymbol)
end;
添加shp图层
Interface
Uses
procedureaddshplayer(map:
tmap;sfilename:
string);
{$R*.dfm}
procedureTForm1.open1Click(Sender:
TObject);
var
i:
integer;
myfileext:
string;
begin
opendialog1.Title:
='选择要打开的图层';
opendialog1.Filter:
='ArcView图层|*.shp';
ifopendialog1.Executethen
fori:
=0toopendialog1.Files.Count-1do
begin
myfileext:
=extractfileext(opendialog1.Files.Strings[i]);
if(myfileext='.shp')then
addshplayer(map1,opendialog1.Files.Strings[i]);
end;
end;
procedureaddshplayer(map:
tmap;sfilename:
string);
var
newlayer:
imomaplayer;
dc:
imodataconnection;
newgeodataset:
imogeodataset;
spath,slayername,sext:
string;
begin
newlayer:
=comaplayer.Create;
dc:
=codataconnection.Create;
spath:
=extractfiledir(sfilename);
slayername:
=extractfilename(sfilename);
sext:
=extractfileext(sfilename);
delete(slayername,length(slayername)-length(sext)+1,length(sext));
dc.Database:
=spath;
ifdc.Connectthen
begin
newgeodataset:
=dc.FindGeoDataset(slayername);
newlayer.GeoDataset:
=newgeodataset;
map.Layers.Add(newlayer);
end;
end;
用户登录
procedureTForm1.FormCreate(Sender:
TObject);
var
sUserName:
string;
begin
adsUserInfo.Close;
adsUserInfo.CommandText:
='Select*FromUserInfo';
adsUserInfo.Open;
whilenotadsUserInfo.Eofdo
begin
sUserName:
=adsUserInfo.Fields.FieldByName('UserName').Value;
cbbUserName.Items.Add(sUserName);
adsUserInfo.Next;
end;
cbbUserName.ItemIndex:
=0;
end;
procedureTForm1.btOkClick(Sender:
TObject);
var
sSQL:
string;
begin
sSQL:
='Select*FromUserInfoWhereUserName=:
sUserNameAndPassword=:
sPassword';
ifedtPassword.Text=''then
begin
ShowMessage('没有输入密码,请输入。
');
edtPassword.SetFocus;
end
elsebegin
adsUserInfo.Close;
adsUserInfo.CommandText:
=sSQL;
adsuserInfo.Parameters.ParamByName('sUserName').Value:
=cbbUserName.Text;adsUserInfo.Parameters.ParamByName('sPassword').Value:
=edtPassword.Text;
adsUserInfo.Open
ifadsUserInfo.RecordCount>0then
closeelsebegin
ShowMessage('密码不正确,请重新输入。
');
edtPassword.Text:
='';
edtPassword.SetFocus;
end;
end;
end;
procedureTForm1.btExitClick(Sender:
TObject);
begin
Application.Terminate;
end;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GIS 软件 开发 复习资料