AOVBA开发教程(III).ppt

上传人:hwp****526 文档编号:84152621 上传时间:2023-04-03 格式:PPT 页数:49 大小:642KB
返回 下载 相关 举报
AOVBA开发教程(III).ppt_第1页
第1页 / 共49页
AOVBA开发教程(III).ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《AOVBA开发教程(III).ppt》由会员分享,可在线阅读,更多相关《AOVBA开发教程(III).ppt(49页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Copyright 2001,2002 ESRI.All rights reserved.Introduction to Programming ArcObjects with VBASymbolizing elements and layers()Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Lesson overviewu总体介绍符号化对象(总体介绍符号化对象(symbology objects)u符号对象符号对象Symbol objectsu颜色对象颜

2、色对象Color objectsu颜色梯度对象颜色梯度对象Color rampsu为地图添加一个简单的图形(为地图添加一个简单的图形(graphics)u使用特征渲染对象修改图层显示方式(使用特征渲染对象修改图层显示方式(FeatureRenderers)u使用图层文件使用图层文件(*.lyr)来管理图层的符号化来管理图层的符号化2Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Symbol类的子类类的子类*Several additional types o

3、f symbols are listed on the Display OMD,including TextSymbols*3Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.u以下五种可创建的对象以下五种可创建的对象uRgbColor(红、绿、蓝)红、绿、蓝)uCmykColor(青、洋红、黄、黑)青、洋红、黄、黑)uHsvColor(色调、饱和度、值)色调、饱和度、值)uHlsColor(色调、亮度、饱和度)色调、亮度、饱和度)uGrayColor(灰度)灰

4、度)u用来定义颜色对象的属性用来定义颜色对象的属性uRed,Green,Blue values(0255)u灰度灰度(0=white 255=black)uCyan,Magenta,Yellow,Blacku使用使用Color对象来访问一个对象来访问一个Symbol对象的对象的Color属性属性使用使用color对象对象4Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.颜色梯度对象颜色梯度对象ColorRampsu四种可以创建的对象四种可以创建的对象uAlgo

5、rithmic ColorRamp(算法颜色梯度)算法颜色梯度)uRandom ColorRamp(随机颜色梯度)随机颜色梯度)uPreset ColorRamp(预定义颜色梯度)预定义颜色梯度)uMultiPart ColorRamp(多部分的颜色梯度)多部分的颜色梯度)5Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.创建一个新的创建一个新的 Randomcolorramp对象对象Public Function GetRandomRamp(NumColor

6、s As Integer)As IEnumColors Dim pRandomColorRamp As IColorRamp Set pRandomColorRamp=New RandomColorRamp pRandomColorRamp.Size=NumColors *Passed into the function Dim blnOK As Boolean pRandomColorRamp.CreateRamp blnOK *Make it so!If Not blnOK Then Exit Function *Exit if there was an error Set GetRand

7、omRamp=pRandomColorRamp *Pass back the rampEnd FunctionRandomColorRamp.CreateRamp方法返回的是方法返回的是IEnumColors对象。是一个枚举对象。对象。是一个枚举对象。6Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.创建简单的图形元素创建简单的图形元素(graphic elements)u有一些可以创建的对象有一些可以创建的对象u图形元素的种类图形元素的种类uLine,pol

8、ygon,markeruText and picturesu框架元素(框架元素(FrameElements)u在在PageLayout上使用上使用uMap framesuNorth arrows,legends,scale barsuTable frames7Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.例子例子:创建一个新的图形元素并设置它的符号创建一个新的图形元素并设置它的符号Dim pMarkerElem As IMarkerElementSet pM

9、arkerElem=New MarkerElement 创建一个新的元素创建一个新的元素Dim pMarkerSym As ISimpleMarkerSymbolSet pMarkerSym=New SimpleMarkerSymbol 创建新符号创建新符号pMarkerSym.Style=esriSMSCircle 指定符号的风格指定符号的风格Dim pColor As IRgbColorSet pColor=New RgbColor 创建一个新颜色创建一个新颜色pColor.RGB=RGB(255,0,0)设置成红色设置成红色pMarkerSym.Color=pColor 把颜色赋给符号把

10、颜色赋给符号pMarkerElem.Symbol=pMarkerSym 把符号赋给元素把符号赋给元素8Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.定义一个元素的位置定义一个元素的位置u使用使用IElement 的的 Geometry属性属性u被所有被所有Element的子类所支持的子类所支持u在地图(在地图(Map)或布局或布局(layout page)上定位上定位u定位可以指定为定位可以指定为 point,line,envelope等等Dim pElem

11、 As IElementSet pElem=pMarkerElem QIDim pPoint As IPointSet pPoint=New PointpPoint.PutCoords 65.751,-7.534pElem.Geometry=pPoint沿线标注文本类型的沿线标注文本类型的Element的定位就可以是的定位就可以是Line对象对象9Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.把一个元素添加到把一个元素添加到 map(或者或者 layout)

12、u使用使用 IGraphicsContainer:AddElementu指定添加的元素和它的序号指定添加的元素和它的序号u0号的序号是第一个(最顶部)的元素,序号从顶到底逐渐增加号的序号是第一个(最顶部)的元素,序号从顶到底逐渐增加Dim pMxDoc As IMxDocumentSet pMxDoc=ThisDocumentpMxDoc.ActiveView.GraphicsContainer.AddElement pElem,0 或者使用以下语句或者使用以下语句Dim pGContainer As IGraphicsContainerSet pGContainer=pMxDoc.Focus

13、Map QIpGContainer.AddElement pElem,0 0=top elementpMxDoc.ActiveView.Refresh通过刷新屏幕来显示新添加的元素通过刷新屏幕来显示新添加的元素10Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.FeatureRenderers对象对象uRenderers 方法定义了方法定义了 layer 对象是怎么显示的对象是怎么显示的其它的其它的Renderers对象可以用来显示对象可以用来显示 Raste

14、rLayers 和和 TinLayers12Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.简单渲染简单渲染SimpleRendereru默认的使用简单的符号来渲染显示要素默认的使用简单的符号来渲染显示要素u属性属性uSymbol:颜色和风格颜色和风格uLabel:在在 legend中显示的字符串中显示的字符串u在修来了图层的渲染方式之后需要执行刷新操作在修来了图层的渲染方式之后需要执行刷新操作USA设置一个要素类图层的渲染对象设置一个要素类图层的渲染对象Se

15、t pFLayer.Renderer=pRender刷新显示刷新显示pMxDoc.ActiveView.Refresh刷新内容表刷新内容表(TOC)显示新的图标显示新的图标pMxDoc.UpdateContents13Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.u根据不同的唯一值用一个符号来显示要素根据不同的唯一值用一个符号来显示要素u属性属性uField(s):提供唯一分类值的字段提供唯一分类值的字段uValue(s):特征的唯一分类值特征的唯一分类值u

16、ValueCount:需要显示的唯一分类值的数目需要显示的唯一分类值的数目唯一值渲染唯一值渲染UniqueValueRenderer14Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.例子例子:创建一个创建一个 唯一值专题图为每个州赋一个符号唯一值专题图为每个州赋一个符号Private Sub ApplyUniqueRenderer(SomeLayer As IGeoFeatureLayer)Dim pUVRenderer As IUniqueValueRen

17、derer Set pUVRenderer=New UniqueValueRenderer Dim pColorEnum As IEnumColors Set pColorEnum=MakeRandomRamp(50)pUVRenderer.FieldCount=1 pUVRenderer.Field(0)=STATE_NAME Dim pFClass As IFeatureClass Set pFClass=SomeLayer.FeatureClass Dim pFCursor As IFeatureCursor Set pFCursor=pFClass.Search(Nothing,Fal

18、se)Dim pFeature As IFeature,pSym As ISimpleFillSymbol Set pFeature=pFCursor.NextFeature Do Until pFeature Is Nothing Set pSym=New SimpleFillSymbol pSym.Color=pColorEnum.Next pUVRenderer.AddValue _ pFeature.Value(pFClass.FindField(STATE_NAME),States,pSym Set pFeature=pFCursor.NextFeature Loop Set Som

19、eLayer.Renderer=pUVRenderer m_pMxDoc.UpdateContents m_pMxDoc.ActiveView.RefreshEnd Sub15Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.u根据数字字段的值分组,每一个分组使用一个符号根据数字字段的值分组,每一个分组使用一个符号u属性属性uBreaks:分组的分界点分组的分界点uField:提供属性分组的数字型字段提供属性分组的数字型字段uBreakCount:所有分组的数目

20、所有分组的数目u分类的方法分类的方法u使用列表在使用列表在OMD图表中适当的图表中适当的 Classify 对象对象 分类端点渲染分类端点渲染ClassBreaksRenderer16Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.把图层文件保存到磁盘上把图层文件保存到磁盘上u可以把图层可以把图层 保存成图层文件保存成图层文件(*.lyr)u图层文件保存了图层文件保存了Layer对象的以下信息对象的以下信息uLayer的数据源的路径的数据源的路径u符号化的方法

21、符号化的方法uLabel 的方式的方式u所定义的查询所定义的查询u等等等等17Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Example:在在ArcMap中保存一个图层文件中保存一个图层文件Public Sub SaveFirstLayer()Dim pMxDoc As IMxDocument Set pMxDoc=ThisDocument 创建一个新的创建一个新的 GxLayer对象对象 Dim pGxLayer As IGxLayer Set pGxL

22、ayer=New GxLayer 是一个是一个Coclass可以使用可以使用New创建创建 通过通过QI取得取得IGFile接口接口 Dim pGxFile As IGxFile Set pGxFile=pGxLayer 定义文件路径定义文件路径 pGxFile.Path=C:DataShelbyville.lyr 连接一个连接一个Layer对象对象 Set pGxLayer.Layer=pMxDoc.FocusMap.Layer(0)保存文件保存文件 pGxFile.Save 完成!完成!End Sub18Copyright 2001,2002 ESRI.All rights reserve

23、d.Introduction to Programming ArcObjects with VBAUsing tools(II)Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Lesson overviewuTool 工具的事件工具的事件u使用使用IDisplayTransformation转换屏幕坐标到地图坐标转换屏幕坐标到地图坐标u使用使用IGraphicsContainer来管理图形元素来管理图形元素u怎么刷新显示怎么刷新显示20Introduction

24、 to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Tool 工具事件工具事件uTools 工具拥有一些事件过程工具拥有一些事件过程 u用于用户交互的事件用于用户交互的事件uMouse events:MouseUp,MouseMove,MouseDown,DblClickuKeyboard events:KeyUp,KeyDownu用于定义工具行为的事件用于定义工具行为的事件uEnableduCursorIDuToolTip uMessageBuilt-In Cursors21Intro

25、duction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.怎么在事件中使用怎么在事件中使用X和和Yu相关的鼠标事件相关的鼠标事件uMouseUp,MouseDown,MouseMoveu返回的是屏幕单位返回的是屏幕单位(pixels)Private Sub UIToolControl1_MouseDown(ByVal button As Long,_ ByVal shift As Long,ByVal x As Long,ByVal y As Long)MsgBox X=&xMs

26、gBox Y=&yEnd Sub22Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Display transformationu在地图单位和屏幕单位之间转换所用到的方法在地图单位和屏幕单位之间转换所用到的方法 uToMapPoint:转换一个屏幕坐标点转换一个屏幕坐标点(pixels)到一个地图坐标点到一个地图坐标点uFromMapPoint:转换一个地图坐标点到屏幕坐标点转换一个地图坐标点到屏幕坐标点u使用鼠标输入使用鼠标输入u捕获鼠标点击的象素值捕获鼠标

27、点击的象素值u使用地图点使用地图点23Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.转换屏幕坐标系到地图单位转换屏幕坐标系到地图单位u使用使用 IDisplayTransformation的的ToMapPoint方法方法u返回一个地图单位的点返回一个地图单位的点 Dim pMxApp As IMxApplicationSet pMxApp=ApplicationDim pPnt As IPointSet pPnt=pMxApp.Display.Display

28、Transformation.ToMapPoint(x,y)MsgBox Longitude=&pPnt.xMsgBox Latitude=&pPnt.y24Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Example:Rubberbandingu在模块层定义变量在模块层定义变量u在在 tools Select 事件中初始化事件中初始化u在在 tools MouseDown 事件中输入以下代码事件中输入以下代码 u把返回值保存在一个对象中把返回值保存在一个对

29、象中Private m_pRubberBand As IRubberBandSet m_pRubberBand=New RubberLineor RubberPolygon or RubberEnvelope Dim pLine As IPolyline Dim pSymbol As ISymbol Set pSymbol=New SimpleLineSymbol Dim pMxApp As IMxApplication Set pMxApp=Application Dim pDisplay As IScreenDisplay Set pDisplay=pMxApp.Display Set p

30、Line=m_pRubberBand.TrackNew(pDisplay,pSymbol)25Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.IGraphicsContainer对象对象u有有 Map 和和 PageLayout支持支持u也可以使用也可以使用 IActiveView 的的 GraphicsContainer属性来获得属性来获得u用来修改图形元素的显示顺序用来修改图形元素的显示顺序uBringToFront,BringForwarduSendTo

31、Back,SendBackwarduPutElementOrderu用来管理图形元素用来管理图形元素uAddElement,AddElements,u DeleteElement,DeleteAllElements26Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.管理图形元素管理图形元素Remove all elements from the Map or-LayoutSet pMxDoc=ThisDocumentpMxDoc.ActiveView.Grap

32、hicsContainer.DeleteAllElementspMxDoc.ActiveView.RefreshAdd an element to the LayoutSet pMxDoc=ThisDocumentDim pGC As IGraphicsContainerSet pGC=pMxDoc.PageLayoutpGC.AddElement pElemArea,0pMxDoc.ActiveView.RefreshSend selected graphics to the back on LayoutDim pGCSelect As IGraphicsContainerSelectSet

33、 pGCSelect=pGC QIpGC.SendToBack pGCSelect.SelectedElementspMxDoc.ActiveView.Refresh27Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.如何刷新显示如何刷新显示u使用使用IActiveView的的Refresh方法方法u刷新所有的显示刷新所有的显示(但是不刷新但是不刷新TOC表表)u使用使用IScreenDisplay的的Invalidate的方法的方法u只刷新指定的范围只刷新指

34、定的范围(envelope)u使用使用IMxDocument的的UpdateContents方法方法u通报该文档对象包含的内容发生了变化通报该文档对象包含的内容发生了变化u刷行了内容表对象(刷行了内容表对象(TOC)28Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.部分刷新显示部分刷新显示u也许你只需要刷新部分的显示区域也许你只需要刷新部分的显示区域u被新图形元素覆盖的区域被新图形元素覆盖的区域u比直接刷新整个文档的效率高比直接刷新整个文档的效率高u使用使用

35、IActiveView的的PartialRefresh方法方法u用于用于 Layout 视图或者视图或者 Data viewu指定什么需要刷新指定什么需要刷新(e.g.,graphics)u指定哪里需要刷新指定哪里需要刷新(an envelope)29Copyright 2001,2002 ESRI.All rights reserved.Introduction to Programming ArcObjects with VBAData management(III)Introduction to Programming ArcObjects with VBACopyright 2001,

36、2002 ESRI.All rights reserved.Lesson overviewu转换数据类型转换数据类型u使用游标来编辑数据使用游标来编辑数据 uUpdateuInsertu在现有的在现有的Dataset中添加字段中添加字段31Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.数据处理对象数据处理对象uFeatureDataConverter,ExportOperation对象对象u提供以下格式的转换功能提供以下格式的转换功能 coverage,sh

37、apefile,and geodatabaseuObjectLoader对象对象u追加数据到现有的追加数据到现有的 feature class 或或 tableuRelated objects对象对象uFieldChecker:使用字段名来定位问题使用字段名来定位问题uEnumInvalidObject:枚举在转换或者追加过程中无效的要素枚举在转换或者追加过程中无效的要素(feature)32Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.转换要素类转换要素类

38、feature classesu使用使用IFeatureDataConverter的的ConvertFeatureClass方法方法u转换输入的要素类到一个新的输出要素类转换输入的要素类到一个新的输出要素类u所需要的参数所需要的参数uInput and output FeatureClassNamesuOutput FeatureDatasetNameuA QueryFilteruMany Others Create a new FeatureDataConverter objectDim pFDConvert As IFeatureDataConverterSet pFDConvert=Ne

39、w FeatureDataConverter33Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Exercise 14A overviewuConvert an ArcInfo coverage to a Personal GeodatabaseuIFeatureDataConversion:ConvertFeatureClassu在第五天代码阅读时提供在第五天代码阅读时提供34Introduction to Programming ArcObjects wi

40、th VBACopyright 2001,2002 ESRI.All rights reserved.使用游标来编辑数据使用游标来编辑数据uUpdate 和和 Insert 类型的游标类型的游标u比使用比使用 ITable:CreateRow,ITable:Store等方法更快等方法更快u在大数据库的情况下更有效在大数据库的情况下更有效uUse to add,delete,or modify rows or featuresuICursor:InsertRow(IFeatureCursor:InsertFeature)uICursor:DeleteRow(IFeatureCursor:Dele

41、teFeature)uICursor:UpdateRow(IFeatureCursor:UpdateFeature)35Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.编辑游标编辑游标u游标返回的类型决定于所使用的方法游标返回的类型决定于所使用的方法uUpdate cursoruUpdate methoduUse to update or delete records in the databaseuInsert cursoruInsert methoduUs

42、e to insert new records into the databaseDim pCursor As IFeatureCursorSet pCursor=pFClass.Update(pQFilter,False)Dim pCursor As IFeatureCursorSet pCursor=pFClass.Insert(True)36Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Dim pQFilt As IQueryFilterSet pQF

43、ilt=New QueryFilterpQFilt.WhereClause=StateName=newmexicoDim pUpCursor As IFeatureCursorSet pUpCursor=pFClass.Update(pQFilt,False)Only newmexicoDim pFeature As IFeatureSet pFeature=pUpCursor.NextFeatureDo Until pFeature Is Nothing pFeature.Value(3)=“New Mexico”改正错误改正错误 pUpCursor.UpdateFeature pFeatu

44、re 提交记录提交记录 Set pFeature=pUpCursor.NextFeature Move to the nextLoopMsgBox Features have been updated例子例子:使用使用Updata游标更新编辑错误的属性游标更新编辑错误的属性37Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.添加一个字段添加一个字段u使用使用Itable的的AddField 方法为现有的方法为现有的dataset对象添加一个字对象添加一个字段段

45、u不需要把不需要把Field加入到加入到Fields对象中对象中u使用一个使用一个Update游标来计算并为字段的赋值游标来计算并为字段的赋值Dim pAverageFld As IFieldEditSet pAverageFld=New FieldWith pAverageFld .Name=Average .Type=esriFieldTypeInteger .AliasName=Average Income .Length=16End WithpTable.AddField pAverageFld38Copyright 2001,2002 ESRI.All rights reserved

46、.Introduction to Programming ArcObjects with VBAWorking with layout elements(IIII)Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.Lesson overviewu增加框架元素到增加框架元素到PageLayoutu使用使用 graphics containeru符号化回顾符号化回顾uSymbolsuColorsuElementsu打印和输出布局打印和输出布局40Introducti

47、on to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.对象模型图对象模型图ArcMap OMD41Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.回顾回顾:Elementsu有一些可以创建的对象有一些可以创建的对象u图形元素包含图形元素包含uLine,polygon,markeruText and picturesu框架元素框架元素 u在在 PageL

48、ayout上上uMap framesuNorth arrows,legends,scale barsuTable frames42Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.框架元素框架元素FrameElementsu属于属于 PageLayout 的附属的附属uMapSurroundFrame elementsuMapSurrounds对象的容器对象的容器(e.g.,Scalebars)u内容时动态更新的内容时动态更新的MapSurroundFrameM

49、apSurround43Introduction to Programming ArcObjects with VBACopyright 2001,2002 ESRI.All rights reserved.例子例子:在布局上引用在布局上引用MapFrames对象对象Dim pMxDoc As IMxDocumentSet pMxDoc=ThisDocumentDim pGC As IGraphicsContainer枚举对象枚举对象Set pGC=pMxDoc.PageLayoutpGC.Reset 移动到最前面移动到最前面Dim pElem As IElementSet pElem=pGC

50、.Next 取得第一个条目取得第一个条目Do Until pElem Is NothingIf(TypeOf pElem Is IMapFrame)Then 有多种类型有多种类型 Dim pMapEnvelope As IEnvelope Dim intW As Integer,intH As Integer Set pMapEnvelope=pElem.Geometry.EnvelopeintW=pMapEnvelope.WidthintH=pMapEnvelope.Height MsgBox Map Frame=&intW&by&intH End IfSet pElem=pGC.Next

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com