private void 查找与替换ToolStripMenuItem_Click(object sender, EventArgs e)

{

mapXBase.IXMap m_IMap;

mapXBase.IXMapLayer m_IMapLayer;

m_IMap = axMxWorkSpace1.ActiveMap;

//m_IMapLayer = m_IMap.ActiveLayer;

mc_basXcls7Lib.mcFeatureCls m_NewFCLs = null;

m_NewFCLs = (mc_basXcls7Lib.mcFeatureCls)m_IMap.get_Layer(1).XClass;

mc_basObj7Lib.mcField myField;

mc_basObj7Lib.mcFields myFields=null;

Search mySearch = new Search();

if (m_NewFCLs != null)

{

m_NewFCLs.GetFields(out myFields);

myField = myFields.get_fldEntry(0);

for (short i = 0; i

{

mySearch.addElement(myFields.get_fldEntry(i).fieldname);

}

}

mySearch.ShowDialog();

string field_name = mySearch.get_zd_name();  //要替换的字段名

string field_name_look = mySearch.get_search_begain();//要替换的查找记录

string field_name_replace = mySearch.get_search_end();//替换为什么

mc_basObj7Lib.mcFeature myfeature;

mc_basObj7Lib.mcObjectID myid;

int j =return_fieldID(field_name,myFields);

//mc_basObj7Lib.mcRecord myRecord;

mc_basObj7Lib.mcFldNames myAtt=null;

string condition = field_name + " LIKE "+"  '%" + field_name_look + "%'";//一定要用大写LIKE,否则的话不能执行G_SQL

int  subTypeCode = -1; //子类型字段的值,该参数缺省为-1

string orderByFld = field_name; //结果排序字段名

short isAsc=1;

mc_basObj7Lib.mcQueryCondition myQueryCondition=new mc_basObj7Lib.mcQueryCondition();

mc_basObj7Lib.meObjType myobjtype;

mc_basXcls7Lib.mcSelectOption mySelectOption=new mc_basXcls7Lib.mcSelectOption();

mc_basXcls7Lib.mcSelectSet mySet = new mc_basXcls7Lib.mcSelectSet();

myQueryCondition.SetAttCondition(condition, myAtt);

int m_FCLsId = 0;

if (m_NewFCLs.AttSelect(myQueryCondition, out mySet, mySelectOption, subTypeCode, orderByFld, isAsc) > -1)

{

mySet.fset.MoveFirst();

int num_move = mySet.fset.MoveFirst();

while (num_move>-1)

{

myid = mySet.fset.GetObjID();

mc_basObj7Lib.mcRecord myRecord;

mySet.fset.GetAtt(out myRecord);

object myreplace = null;

myRecord.GetFldVal(field_name, out myreplace);

string ztf_test = myreplace.ToString().Trim();

ztf_test=ztf_test.Replace(field_name_look, field_name_replace);

myRecord.SetFldFromStr(field_name, ztf_test);

m_NewFCLs.UpdateAtt(myid, myRecord);

num_move=mySet.fset.MoveNext();

}

}

}

private void 线对线吸引ToolStripMenuItem_Click(object sender, EventArgs e)

{

mapXBase.IXMap m_IMap;

mapXBase.IXMapLayer m_IMapLayer;

m_IMap = axMxWorkSpace1.ActiveMap;

shuxing myshuxing = new shuxing();

for (int i = 1; i

{

m_IMapLayer = m_IMap.get_Layer(i);

myshuxing.addElement(m_IMapLayer.LayerName.ToString().Trim());

}

myshuxing.ShowDialog();

string look_layer=myshuxing.get_layer_begin().ToString();

string idea_layer=myshuxing.get_layer_end().ToString();

string NotNullField = myshuxing.get_NotNullField().ToString().Trim();

double look_radio = myshuxing.get_look_rad();

mc_basXcls7Lib.mcFeatureCls myCLs = null;

myCLs = (mc_basXcls7Lib.mcFeatureCls)m_IMap.get_LayerByName(look_layer).XClass;

mc_basXcls7Lib.mcFeatureCls myCls2 = null;

myCls2 = (mc_basXcls7Lib.mcFeatureCls)m_IMap.get_LayerByName(idea_layer).XClass;

mc_basXcls7Lib.mcSelectSet mySet;

mc_basXcls7Lib.mcSelectSet mySet2;

mc_basObj7Lib.mcQueryCondition myQueryCondition = new mc_basObj7Lib.mcQueryCondition();

myQueryCondition.SetAttCondition("'" + NotNullField + "' !=''", null);

if (myCLs.AttSelect(myQueryCondition, out mySet, null, -1, "", 1) > -1)

{

mySet.fset.MoveFirst();

int move_number = mySet.fset.MoveFirst();

mc_basObj7Lib.mcFeature myFeature = new mc_basObj7Lib.mcFeature();

while (move_number > -1)

{

mc_basObj7Lib.mcObjectID myLineID = new mc_basObj7Lib.mcObjectID();

mc_basObj7Lib.mcObjectID myArcID = new mc_basObj7Lib.mcObjectID();

mc_basObj7Lib.mcObjectID myFeatureID = new mc_basObj7Lib.mcObjectID();

myFeatureID = mySet.fset.GetObjID();

myLineID = getLineIDformFeatureID(myFeatureID);

myArcID = getArcIDformFeatureID(myFeatureID);

mc_basObj7Lib.mcLinInfo mylininfo = new mc_basObj7Lib.mcLinInfo();

mc_basObj7Lib.mcGeoVarLine myGeoVarLine = new mc_basObj7Lib.mcGeoVarLine();//定义一条新的折线

mc_basObj7Lib.IGeoLine myGeoLine;

mc_basObj7Lib.mcGeoLines myGeoLines;

mySet.glinset.GetPos(out myGeoLines, out mylininfo);

//myCLs.glin.GetPos(myLineID, out myGeoLines, out mylininfo);

// myGeoLines.GetLine(0, out myGeoLine);

myCLs.sarc.Get(myLineID, out myGeoLine);//从空间弧段中取几何线

mc_basObj7Lib.mc3Dots my3Dots = new mc_basObj7Lib.mc3Dots();

myGeoLine.Get3Dots(out my3Dots);

mc_basObj7Lib.mc3Dot replaceDot = new mc_basObj7Lib.mc3Dot();

mc_basObj7Lib.mcObjectIDs myArcIDs = new mc_basObj7Lib.mcObjectIDs();

bool flag_cycle = true;

for (int b = 0; b

{

if (myCls2.AttSelect(myQueryCondition, out mySet2, null, -1, "", 1) > -1)

{

mySet2.fset.MoveFirst();

int num_2 = mySet2.fset.MoveFirst();

while (num_2 > -1)

{

mc_basObj7Lib.mcObjectID replaceFeatureID = new mc_basObj7Lib.mcObjectID();

replaceFeatureID = mySet2.fset.GetObjID();

mc_basObj7Lib.mcObjectID replaceLineID = new mc_basObj7Lib.mcObjectID();

replaceLineID = getLineIDformFeatureID(replaceFeatureID);

mc_basObj7Lib.mcObjectID replaceArcID = new mc_basObj7Lib.mcObjectID();

replaceArcID = getArcIDformFeatureID(replaceFeatureID);

mc_basObj7Lib.IGeoLine myGeoLine2;

myCls2.sarc.Get(replaceLineID, out myGeoLine2);

mc_basObj7Lib.mc3Dots pointDots = new mc_basObj7Lib.mc3Dots();

mc_basObj7Lib.mc3Dot pointDot = new mc_basObj7Lib.mc3Dot();

myGeoLine2.Get3Dots(out pointDots);

for (int c = 0; c

{

pointDot = pointDots.get_item(c);

if (point_compare(my3Dots.get_item(b), pointDots.get_item(c), look_radio))

{

myGeoVarLine.Append3D(pointDots.get_item(c));

flag_cycle = false;

goto myLabel;

}

}

num_2 = mySet2.fset.MoveNext();

}

myLabel:

if (flag_cycle)

{

myGeoVarLine.Append3D(my3Dots.get_item(b));

}

}

}

myCLs.sarc.Update(myArcID, myGeoVarLine);

//myCLs.glin.Update(myLineID, myArcIDs, mylininfo);

mySet.fset.Get(out myFeature);

myCLs.feature.UpdateLin(myFeatureID, (mc_basObj7Lib.IGeoLine)myGeoVarLine, myFeature.att, mylininfo);

myCLs.feature.Update(myFeatureID, myFeature);

move_number = mySet.fset.MoveNext();

}

}

this.axMxWorkSpace1.Save();

}

//返回ArcID

public mc_basObj7Lib.mcObjectID getArcIDformFeatureID(mc_basObj7Lib.mcObjectID featureID)

{

mc_basObj7Lib.mcObjectID ArcID = new mc_basObj7Lib.mcObjectID();

ArcID.Int = featureID.Int - 1;

ArcID.Int64 = Convert.ToInt64(featureID.Int - 1);

ArcID.String = Convert.ToString(featureID.Int - 1);

ArcID = (mc_basObj7Lib.mcObjectID)ArcID;

return ArcID;

}

//返回LineID

public mc_basObj7Lib.mcObjectID getLineIDformFeatureID(mc_basObj7Lib.mcObjectID featureID1)

{

mc_basObj7Lib.mcObjectID LineID = new mc_basObj7Lib.mcObjectID();

LineID.Int = featureID1.Int - 2;

LineID.Int64 = Convert.ToInt64(featureID1.Int - 2);

LineID.String = Convert.ToString(featureID1.Int - 2);

LineID = (mc_basObj7Lib.mcObjectID)LineID;

return LineID;

}

//比较点位距离

public bool point_compare(mc_basObj7Lib.mc3Dot Dot1,mc_basObj7Lib.mc3Dot Dot2, double space)

{

double x1=Dot1.x;

double y1=Dot1.y;

double x2=Dot2.x;

double y2 = Dot2.y;

double sq1 = x1 * x1 + y1 * y1;

double sq2 = x2 * x2 + y2 * y2;

double sq_space = space * space;

if (Math.Abs(sq1 - sq2)

{

return true;

}

else

{

return false;

}

}

/根据字段名检测字段所在的fieldID

public int return_fieldID(string field_name, mc_basObj7Lib.mcFields myfields)

{

int return_num = -1;

for (short num = 0; num

{

string mystring = myfields.get_fldEntry(num).ToString().Trim();

if (mystring == field_name)

{

return_num = Convert.ToInt16(num);

break;

}

}

return return_num;

}

//线对线吸引窗口

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace DocumentOper

{

public partial class shuxing : Form

{

public string layer_begin;

public string layer_end;

public double look_rad;

public string NotNullField;

public shuxing()

{

InitializeComponent();

}

public string get_layer_begin()

{

return layer_begin;

}

public string get_layer_end()

{

return layer_end;

}

public double get_look_rad()

{

return look_rad;

}

public string get_NotNullField()

{

return NotNullField;

}

public void addElement(object element)

{

this.comboBox1.Items.Add(element);

this.comboBox2.Items.Add(element);

}

private void button1_Click(object sender, EventArgs e)

{

if (this.comboBox1.SelectedIndex > -1)

{

layer_begin = this.comboBox1.GetItemText(comboBox1.SelectedItem).ToString().Trim();

layer_end = this.comboBox2.GetItemText(comboBox2.SelectedItem).ToString().Trim();

look_rad = Convert.ToDouble(this.textBox1.Text.ToString().Trim());

NotNullField = this.textBox2.Text.ToString().Trim();

this.Close();

}

else

{

MessageBox.Show("请选择!");

return;

}

}

private void button2_Click(object sender, EventArgs e)

{

this.FindForm().Close();

this.comboBox1.Items.Clear();

this.comboBox2.Items.Clear();

this.Close();

}

private void shuxing_FormClosed(object sender, FormClosedEventArgs e)

{

this.comboBox1.Items.Clear();

this.comboBox2.Items.Clear();

}

}

}

//属性替换窗口

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace DocumentOper

{

public partial class Search : Form

{

private string zd_name;

private string search_begain;

private string search_end;

public Search()

{

InitializeComponent();

}

public string get_zd_name()

{

return zd_name;

}

public string get_search_begain()

{

return search_begain;

}

public string get_search_end()

{

return search_end;

}

private void button2_Click(object sender, EventArgs e)

{

this.textBox1.Text = "";

this.textBox2.Text = "";

}

private void button1_Click(object sender, EventArgs e)

{

if (this.comboBox1.SelectedIndex > -1)

{

zd_name = this.comboBox1.GetItemText(comboBox1.SelectedItem).ToString().Trim();

search_begain = this.textBox1.Text.ToString().Trim();

search_end = this.textBox2.Text.ToString().Trim();

this.Close();

}

else

{

MessageBox.Show("请选择一个要查找的字段");

}

}

public void addElement(object element)

{

this.comboBox1.Items.Add(element);

}

private void Search_FormClosed(object sender, FormClosedEventArgs e)

{

this.comboBox1.Items.Clear();

}

}

}

mapgis java二次开发_mapgis7.0二次开发小试牛刀相关推荐

  1. “Python安全开发 1.0” + “Python安全开发 2.0”

    出品|MS08067实验室(www.ms08067.com) "Python安全知识星球"第一期"Python安全攻防"于2021年05月14日全部结束了,第一 ...

  2. 201671010135 2016--2017java程序设计对java的初步认识和对第一,二章的总结(0)

    201671010135  2016--2017<java程序设计>对java的初步认识和对第一,二章的总结(0) java是一种程序语言设计.html是一种描述网页结构的方式.除了用于在 ...

  3. JAVA进阶开发之(二维数组)

    1.二维数组其实是一个特殊的一维数组,特殊在这个二维数组中每一个元素是一个一维数组 2.就是一维数组里面都是一样的元素,二维数组就是把元素换成了一维数组 3.实际开发中,使用最多的就是一维数组,二维数 ...

  4. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】...

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...

  5. 视频教程-微信公众平台深度开发v2.0第3季——二维码、模板消息-微信开发

    微信公众平台深度开发v2.0第3季--二维码.模板消息 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考) ...

  6. SpringBoot实现Java高并发秒杀系统之Service层开发(二)

    继上一篇文章:SpringBoot实现Java高并发秒杀系统之DAO层开发 我们创建了SpringBoot项目并熟悉了秒杀系统的表设计,下面我们将讲解一下秒杀系统的核心部分:Service业务层的开发 ...

  7. 分享:Java 开发精美艺术二维码

    博客地址:https://ainyi.com/58 Java 开发精美艺术二维码 看到网络上各种各样的二维码层出不穷,好像很炫酷的样子,一时兴起,我也要制作这种炫酷二维码效果 例如: 根据以往例子 根 ...

  8. 从0到1开发实战手机站(二):Git提交规范配置

    生活不能随意过,代码也不能随意写. 前一篇文章我们已经把项目搭建好了,那是不是马上就开始写页面了呀? NO! 无论在哪家公司,都会有相应的代码规范.新入职的员工往往第一步就要接受代码规范的学习. 既然 ...

  9. 使用Express开发小说API接口服务1.0(二)

    使用Express开发小说API接口服务1.0(二) 线上访问地址api.langpz.com/ 之前完成了首页和搜索的接口,现在就开始写剩下的接口. 获取小说源 因为追书神器正版源是收费加密的,所以 ...

最新文章

  1. Code Valley团队拟在澳洲建立一座价值5000万美元的BCH科技园
  2. CS0136 无法在此范围中声明名为“channel”的局部变量或参数,因为该名称在封闭局
  3. jQuery遍历之next()、nextAll()方法使用实例
  4. Python判断字符串是否为字母或者数字
  5. 使用 ArcGIS Desktop 切瓦片
  6. blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)
  7. 清华镜像源_Hyperledger Fabric2.x Docker镜像编译加速
  8. spring boot 报错
  9. 全国计算机二级java刷题软件_你知道的计算机二级刷题软件
  10. Axure第11享:Axure汉化方法?
  11. 【笔记】Altera - Quartus II使用方法——工程创建、Modelsim破解/仿真、Verilog编写、举例(待续)
  12. qunee for html5,Qunee for HTML5(一)
  13. dota2服务器何时修复,《DOTA2》10月10日更新:服务器改善bug饰品修复
  14. 多一份感动,多一份行动
  15. 数据集介绍 - Matting and Segmentation
  16. 硬件工程师--医疗器械
  17. 包含动画的PPT转为PDF
  18. 各大主流BBS论坛程序简介
  19. 怎么清除火狐浏览器的cookie?
  20. 聊聊引擎底层如何实现Bloom渲染算法

热门文章

  1. redis设置expire以及删除机制
  2. HTML基础 冲冲冲
  3. 太极计划——华夏民族软件腾飞的计划
  4. 如何为iTunes Connect准备应用
  5. Typora 自动保存笔记
  6. Mac 有Alt 键吗?Alt 或 Option 键在 Mac 键盘上的作用是什么
  7. video.js 自定义播放组件
  8. 生成对抗网络——原理解释和数学推导
  9. GDI+ 画路径(消除锯齿的效果很不错)
  10. Unreal Engine 4 系列教程 Part 7:音频教程