云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C#二次开发ArcGIS查询功能

C#二次开发ArcGIS查询功能

  • 62 次阅读
  • 3 次下载
  • 2025/6/6 12:12:38

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

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查询功能 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

[地理信息系统课程设计报告] flag = false; } if (flag) j++; } //删除重复的边 edjest = Delete(edjest); triangle = NewTriangle(pt, edjest); i++; } //删除以超级三角形顶点为顶点的三角形 triangle = SuperDelete(supertriangle); //删除凹边界处三角形 triangle = TraingleDelete(); using (Graphics g = this.picMap.CreateGraphics())

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com