第一范文网 - 专业文章范例文档资料分享平台

C#二次开发ArcGIS查询功能

来源:用户分享 时间:2025/5/23 9:04:37 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

[地理信息系统课程设计报告]

flag = false;

} if (flag) j++;

} //删除重复的边

edjest = Delete(edjest);

triangle = NewTriangle(pt, edjest); i++;

}

//删除以超级三角形顶点为顶点的三角形 triangle = SuperDelete(supertriangle); //删除凹边界处三角形

triangle = TraingleDelete();

using (Graphics g = this.picMap.CreateGraphics()) {

for (int j = 0; j < triangle.Count; j++) {

Point[] myPoint = newPoint[3];

myPoint[0] = (Point)triangle[j][0]; myPoint[1] = (Point)triangle[j][1]; myPoint[2] = (Point)triangle[j][2];

g.DrawPolygon(newPen(Brushes.Red,3), myPoint); } }

构建泰森多边形需要构建三角网。找出每个离散点周围的三角形即以该离散点为共同顶点的三角形,按逆时针排列起来以便下一步生成泰森多边形,连接该离散点周围三角形的外接圆的圆心。三角网边界处的泰森多边形可做垂直平分线与图廓相交,与图廓一起形成泰森多边形。(代码见附录)

重点代码示例:

//使三角形三个点坐标都按逆时针方向存储 triangle= Thiessen.SortTraingle(triangle); //存储三角网所有三角形的边 Thiessen.Edge(triangle); //构成边界的边集合

Thiessen.BorderEdge(Thiessen.allEdge); //寻找以边界点为顶点的三角形集合

Thiessen.BorderTriangle(Thiessen.borderEdge, triangle); //除边界点外其他离散点

Thiessen.CenterPoint(myPoints, Thiessen.borderEdge); //除边界点外其他离散点构成的泰森多边形集合

Thiessen.ThiessenEdge(triangle, Thiessen.centerpoint); //边界离散点构成的泰森多边形集合

Thiessen.MyBorderTheissen(Thiessen.borderEdge, Thiessen.myBorderTriangle);

[地理信息系统课程设计报告]13 / 38

[地理信息系统课程设计报告]

using (Graphics g = this.picMap.CreateGraphics()) {

//绘制除边界点外其他离散点构成的泰森多边形集合 for (int i = 0; i

g.DrawPolygon(newPen(Brushes.Black,3), Thiessen.myTheissen[i].ToArray()); }

//绘制边界离散点构成的泰森多边形集合

for (int i = 0; i

g.DrawPolygon(newPen(Brushes.Black,3), Thiessen.myBorderTheissen[i].ToArray()); } }

八、源代码附录 1、用户登录源码

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.Data.SqlClient; namespace MyMap {

publicpartialclassLoginWindow : Form {

public LoginWindow() {

InitializeComponent(); }

privatevoid btnLogin_Click(object sender, EventArgs e) {

if (txtUserName.Text.Length <= 0) {

MessageBox.Show(\请输入用户名\); return;

}

if (txtpwdPassword.Text.Length <= 0)

[地理信息系统课程设计报告]14 / 38

[地理信息系统课程设计报告]

{

MessageBox.Show(\请输入密码!\); return;

}

DataSet ds = SqlHelper.ExecuteDataSet(@\, newSqlParameter(\, txtUserName.Text)); if (ds.Tables[0].Rows.Count <= 0) {

MessageBox.Show(\用户不存在!\); return;

}

if (ds.Tables[0].Rows.Count > 1) {

thrownewException(\不好啦!重复了!\); }

DataRow row = ds.Tables[0].Rows[0];

string password = (string)row[\]; long id = (long)row[\];

int errortimes = (int)row[\]; //错误次数大于3时 //防御性编程

if (errortimes >= 3) {

DateTime date = (DateTime)row[\]; TimeSpan ts = DateTime.Now - date; if (ts.TotalMinutes <= 30) {

MessageBox.Show(@\输入错误次数太多,用户已被锁定,请于30分钟后再登陆,剩余时间

\ + (30 - ts.TotalMinutes).ToString(\) + \分钟\,\错误提示\,MessageBoxButtons.OK,MessageBoxIcon.Error); return;

} else

{

//输错三次后30分钟后更新ErorrTimes=0

SqlHelper.NonQuery(@\, newSqlParameter(\, id)); } }

if (password == txtpwdPassword.Text) {

DialogResult result= MessageBox.Show(\欢迎您登陆!\,\用户登录\,MessageBoxButtons.OKCancel,MessageBoxIcon.Question); this.Hide();

if (result == DialogResult.OK)

[地理信息系统课程设计报告]15 / 38

[地理信息系统课程设计报告]

{

MapWindow mw = newMapWindow();

DialogResult mapresult= mw.ShowDialog(); if(mapresult==DialogResult.Cancel) { Application.Exit(); } } else

{ Application.Exit(); } } else

{

MessageBox.Show(\密码错误!\);

SqlHelper.NonQuery(@\Id=@id\,

newSqlParameter(\, id)); object date = row[\]; if (date == DBNull.Value) { date = DateTime.Now; }

TimeSpan ts = DateTime.Now - Convert.ToDateTime(date); if (ts.TotalMinutes > 5) {

SqlHelper.NonQuery(@\, newSqlParameter(\, id)); } return;

} }

privatevoid btnCancel_Click(object sender, EventArgs e) { this.Close(); }

privatevoid btnRegister_Click(object sender, EventArgs e) {

DataSet ds = SqlHelper.ExecuteDataSet(@\, newSqlParameter(\, txtUserName.Text)); if (ds.Tables[0].Rows.Count >= 1) {

//throw new Exception(\不好啦!重复了!\

MessageBox.Show(\用户名已存在,请重新输入用户名注册\);

[地理信息系统课程设计报告]16 / 38

搜索更多关于: C#二次开发ArcGIS查询功能 的文档
C#二次开发ArcGIS查询功能.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c19whw7d81f2r4yi9c8hj79c964hjsm00lc8_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top