C#进行MapX二次开发之MapX基础知识

2023-11-09

C#进行MapX二次开发之MapX基础知识

MapX的主要技术特点
(1)、 以表(Table)的形式组织信息
每一个表都是一组MapInfo文件,这些文件组成了地图文件和数据库文件。为使用MapInfo,就需要有组成表的用户数据和地图文件。这些文件可以来自MapInfo或者由用户创建。用户要想在MapInfo中工作,就必须打开一个或多个表。
MapInfo通过表的形式将数据与地图有机地结合在一起。当用户在MapInfo中打开数据文件时,MapInfo将创建一个表。这个表至少由两个独立的文件组成,一个是包含数据结构的文件,另一个是包含原始数据的文件。一个典型的MapInfo表将主要由*.tab、*.dat、*.wks、*.dbf、*.xls、*.map、*.id、*.ind文件格式组成。
(2)、 图形对象
MapInfo内置的数据库管理系统是一种关系型数据库管理系统,也是用二维表组织数据。与其它关系型数据库不同的是表结构中除可包含常用类型的属性列外,还引入一个图形对象列(OBJ列),用于存储图形对象(如线、区域等)。MapInfo提供许多图形对象的操作接口,利用这些接口可以生成和处理所需要的各种图形。
(3)、 地图图层化
MapInfo是按图层组织计算机地图的。也就是说,将一幅计算机地图加工成多个层层叠加的透明层,这个透明层就称为图层。每个图层包含了整个地图的一个不同方面。例如,第一个图层包含省边界,第二个图层表示省府的符号,第三个图层由标注文本组成,把它们层层叠加就形成一幅完整的地图。在创建每一个图层时,都要为其建立一张表,MapInfo就是通过这种方式使表与地图之间建立了联系。
也就是说,MapInfo是以表的形式来进行管理的,每个表一般包含两部份:地图部分和数据库(属性)部份。
(4)、 专题地图
提供多种数据可视化的专题地图,能将数据库中的信息进行直观的可视化分析。使用专题渲染在地图上显示数据时,可以清楚地看出在数据记录中难以发现的模式或趋势,为用户的决策提供依据。专题地图包括范围值、点密度、柱状图、等级符号、饼图和独立值六种形式。
(5)、 内置ODBC
MapInfo内置ODBC,支持各种关系型数据库,支持SQL查询,从而保证了对原有数据库的沿用和对远程数据库地访问。具备空间查询的功能扩展(如缓冲区、叠加等),采用数据仓库的最新技术OLAP(Online Analytical Processing)的联机事物处理,对于应用程序实现图形查询和表查询提供了强大的手段。
(6)、 支持多种数据格式及其转换
MapInfo既支持数字化仪的图形输入方式,直接生成矢量图,也支持目前市场上流行的图形图象格式。可接受AutoCAD的DWG、DXF标准文件格式,还可通过MIF及MID文件与其它软件建立数据的接口。其中MIF文件内保存有图形信息,MID文件内保存有图形的属性信息。MIF及MID文件通过MapInfo的菜单命令Import和Export来输入和产生。
(7)、 二次开发工具MapBasic
作为一个系统软件,MapInfo提供了可以将其所有的功能用程序来驱动的方法,内置标准的二次开发工具——MapBasic。MapBasic不仅与大众化的Basic语法相一致,具有基本一致的常用函数集(计算、字符串处理、文件I/O、DLL调用等),而且利用MapBasic语言所提供的函数、过程和语句命令可以完成许多有关图形对象管理的复杂操作和运算。它的真正优势在于对MapInfo中的Table及其图形对象的管理所提供的特性和强大功能。采用面向对象及事件驱动编程
(8)、 集成二次开发能力
具有OLE和OLE Automation功能,可以方便地使用Delphi、VB、VC等多种开发工具,保证了新的应用程序与原有的应用界面保持一致,为日后的深层开发提供一个扩展空间。

MapX的组件模型结构

MapX组件的基本组成单元是Object(单个对象)和Collection(集合)。其中集合包括对象,是多个对象的组合。每种对象和集合负责处理地图某一方面的功能。
由图4.4可以看出,位于顶层的是Map对象本身,其它均由Map对象继承。Layers、DataSets、Annotations是Map对象下面的三个重要的分支。其中Layer主要用于操作地图的图层,DataSet用于访问空间数据表,Annotation用于在地图上增加文本或者符号。


每个Map对象主要包括Datasets、Layers、Annotations三个对象集合。
Map对象有一些主要的属性,如Zoom用来设置放大级别(在地图上显示的大小),Rotation控制地图的旋转角度,CenterX和CenterY用于设置x和y的坐标系,这要取决于地图的投影。
Map对象的许多属性本身又是一个对象,比如说一幅地图由多个图层组成,则在一个Map对象中存在一个单独的layers集合,其中包含所有图层的信息。
 Layers
在MapX中,每张单独的地图都被表示成单独的一个图层,所有的图层存储在layers集合中。Layers集合由Layer对象组成,按顺序编号为0到n。Layer对象由features对象组成,features对象又是由Feature对象组成,对应于地图中的点、线、区域或符号。
最上面一层为Layers(1),Layers(2)位于Layers(1)的下面,以次类推。最下面的图层最先绘制,最上面的图层最后绘制。在应用程序中,合理地安排好每层在Layers中的顺序是至关重要的。比如说有两个图层,一层为点,一层为区域,则应将点层放到区域层的上方,否则区域会将点覆盖。
另外,在进行地图选择操作时,根据要求调整图层的顺序也是十分重要的。MapX中的选择工具总是从可选择图层中的最上层开始选择,如果在地图上的同一位置存在多个位于不同层的地图对象,其结果是很难精确地选择到目标对象。因此,最好将被选择图层提到最上层显示。
 GeoSets
GeoSet是在GeoManager中建立好的.GST文件,类似MapInfo中的WorkSpace概念,是图层及其设置的集合,控制程序中显示的地图。也可以在运行阶段设置GeoSet,此时将导致已经加载的所有图层和DataSet被删除而由GeoSet中定义的图层所代替。如果单纯地想删除所有图层,只需给GeoSet赋一个空字符串即可。
可以使用GeoSet Manager程序来管理GeoSet 文件(*.GST)。默认情况下.GST文件存储在…\\mapx\maps目录下,可以调用GeoDictionary Manager程序进行修改,指向用户程序数据所在的位置。
 Datasets
Datasets用于实现地图与数据的绑定。举例说明,有一个关于城市销售情况的MSAccess 数据库和一张该城市的地图,则可以将二者绑定,在地图上形象地显示出各城市销售业绩的趋势,这一点是表格数据无法做到的。
建立地图信息与属性数据之间联系的过程称之为自动绑定或自动匹配(autobinding /automatching)。要实现这一过程,必须首先将地图在GeoDictionary 中注册。 
 属性数据表示的可视化使得创建专题地图成为可能。
数据绑定"Putting Your Data on the Map"
专题地图"Theme Mapping and Analysis"
 Annotations
Annotations集合提供了操纵地图中文字和符号的简单方法。Annotations位于所有其它图层的上方并且不与任何数据连接,有点儿象MapInfo中的透明图层。
Annotations包括以下主要的属性与方法:AddSymbol在Annotations中增加符号,符号类型使用Map.DefaultStyle定义;AddText在Annotations中增加文本;Remove删除特定的标注.;Type取值为miSymbolAnnotation或miTextAnnotation。
  Annotations还有一个非常重要的属性Graphic,其定义为Graphic对象,在该对象中包含了符号或文本的样式、位置等信息,即Graphic的Caption、Position、Style 、X、Y属性。如Annotations的Type属性定义为miTextAnnotation,则可以定义Graphic的Caption属性设置标注的字符串。
 可创建对象
在MapX对象模型中,以下对象是可以被创建的: 
AffineTransform、BindLayer、BitmapSymbols、CoordSys、Datum、Feature、Fields、LayerInfo、Map、 ODBCQueryInfo、 Parts、Point、Points、Rectangle、RowValue、RowValues、Style、Variables、NotesQueryInfo、NotesViewInfo。

 

  专题地图

1、 专题地图的概念
  MapInfo的一个显著特征就是能将数据库中的信息进行直观的可视化分析。专题地图就是用于分析和表现数据的一种强有力的方式。用户可以通过使用专题地图的方式将数据图形化,使数据以更直观的形式在地图上体现出来。当使用专题渲染在地图上显示数据时,可以清楚地看出在数据记录中难以发现的模式和趋势,为用户的决策支持提供依据。专题地图是MapInfo中的一个重要概念,是用户使用好MapInfo的一种体现。
  制作专题地图是根据某个特定专题对地图进行“渲染”的过程。所谓的专题渲染,就是以某种图案或颜色填充来表明地图对象(点、线、区域)的某些信息(例如人口、大小、年降雨量、日期等等),也就是说,这类渲染存在着主题,经过这样渲染的地图就是专题地图。利用MapInfo,可根据数据库表中特定的值来赋给地图对象颜色、图案或符号,从而创建不同的专题地图。
  
2、 专题图的六种类型
  MapInfo为创建专题地图提供了强有力的支持。用户可以使用范围值、等级符号、点密度、独立值、直方图和饼图等多达六种方式来创建不同的专题地图。
  (1)、 范围值
  按照设置的范围显示数据。这些范围用颜色和图案进行渲染。范围专题地图能够通过点、线和区域来说明数值,在反映数值和地理区域的关系(如销售数字,家庭收入),或显示比率信息如人口密度(人口除以面积)时是很有用的。
  (2)、 等级符号
  等级符号为表中每条记录显示一个符号,符号大小与数据值成比例。等级符号地图用特定的数值来显示数据点,对于阐明定量信息(如由高到低依次变化)很有用处。符号的大小与该点对应的数值成比例,数值越大点就越大,数值越小点就越小。因此,等级符号最适合数据值数据。
  (3)、 点密度
  在地图上用点来显示数据,每一点都代表一定数量,某区域中点的总数与该区域数值成比例。每个点代表一定数量的单元,该数乘以区域内总的点数,就等于该区域的数据值。
  (4)、 独立值
  按独立数值渲染地图,可以表达多个变量。根据独立值绘制地图对象的专题地图有助于强调数据的类型差异而不是显示定量信息(如给定区域内的商店类型、分区类型等等)。
  (5)、 直方图
  将表中每条记录的专题变量显示为一个直方图。使用直方图可分析地图中每条记录的多个变量。比较每个直方图中各直方条的大小可考察表中某条记录,比较所有直方图中某一条的大小可考察所有记录的某个变量,而比较各直方图的高度可考察整张表。用直方图来表达负值时,该条会沿直方图反方向伸展。在叠加直方图中不显示负值。
  (6)、 饼图
  以饼图显示表中各记录的专题变量。饼图可包含多个变量。在地图上使用饼图可一次分析多个变量,比较每个图中饼扇的大小可考察表中某条记录,比较所有饼图中某一个饼扇,可考察所有记录中某个变量的变化,比较各饼图的直径可考察整张表。

3、 MapX对专题图的支持
  MapX中使用Themes集合与Theme对象来实现对专题图的支持,每个Themes集合中可以包含多个Theme对象,也就是说,针对一个Dataset,可以创建多幅不同的专题地图。
  每个Dataset都拥有一个Themes集合,并以其属性的形式存在,即Dataset.Themes。使用Themes的Add、Remove、RemoveAll等方法可以控制专题的添加和删除。
  a) Add方法:创建一个专题并将其加入到某个特定的DataSet的Themes集合中,
  b) Remove方法:从集合中删除某一特定的专题图
  c) RemoveAll方法:从集合中删除所有的的专题图

  Theme对象用于设置每个专题图的属性。
  比较重要的有
  a) Layer:返回一个Layer对象,表示该专题图所在的图层
  b) Legend:控制 对专题地图的说明,即图例
  c) ComputeTheme 控制是否可以对原始数据进行计算,默认为True
  d) Type 即专题图类型,取值范围为ThemeTypeConstants
  e) Fields 只读属性,返回该专题图所基于的Dataset中的字段集合
  ThemeProperties 复合型属性,对应ThemeProperties对象,包含了专题图详尽的定义信息,如范围定义、显示风格设置等。

4、 专题图的规划
  在创建专题图的过程中,有几个关键因素,包括专题图变量的确定、属性数据的获取以及专题图层的显示与控制。
  (1)、 确定专题图变量
  在专题图中显示的数据就是专题图变量。例如在行政区面积专题图中,表示面积的字段“area”就是这个专题地图的专题地图变量。
  一个专题变量可以是一个字段或表达式。取决于专题图的类型,在一张地图上可以显示一个或多个专题图变量。范围值、等级符号、点密度和独立值地图都只检查一个变量。可以利用饼图或直方图一次显示多个专题变量。也可以创建双变量专题地图,其中一个地图对象可代表两个不同的数据,入符号的颜色代表一个专题变量,符号的大小代表另一个专题变量。
  (2)、 属性数据的获取
  在创建专题地图之前,必须确定需要显示何种信息,信息存储在什么位置。它可以在创建地图时所基于的表中,也可以在ODBC支持的外部数据库中。数据来源于Field对象或Field集合,在Themes.Add方法中通过Fields参数传递。
  (3)、 创建专题图
  首先应将某个产生专题图数据的dataset引入地图中,之后使用Themes.Add方法创建一个Theme对象。
  curmap.Datasets[1].Themes.Add(miThemeRanges,"TotPop","");
  语法: Themes.Add([Type], [Field], [Name]);
  Type用于定义要创建的专题图的类型,它的取值范围是ThemeTypeConstants,该参数可选,如果没有定义或者定义为miThemeAuto,MapX会根据字段数以及已经存在的专题图类型自动在ThemeTypeConstants中选择一个。如果MapX无法自行确定专题类型,就会产生一个错误。
Field(s)定义在专题图中使用的一个或多个字段,可以通过字段名、字段索引或字段对象来引用。当创建多变量专题图时,可以使用数组表示。该字段是可选的,若不特意指定,MapX会使用DataSet中的第一个数字型字段。
  Name,即专题图的名称,String类型参数,若不指定,MapX会自动生成一个名字。
  (4)、 专题图类型常量
  专题图变量由Theme.Typeproperty取得,其定义如下:
     miThemeRanged = 0 
     miThemeBarChart = 1 
     miThemePieChart = 2 
     miTheme GradSymbol = 3 
     miThemeDotDensity = 4 
     miThemeIndividualValue = 5 
     miThemeAuto = 6 
     miThemeNone = 9

5、 控制专题地图
  有两种方法可以控制专题地图。
  (1)、 使用Theme.ThemeDlg方法
  该方法显示一个对话框,用户可以直接修改专题图特性。语句如下:
    curmap.Datasets[1].Themes[1].ThemeDlg;
  这种方法虽然简单,但是而且很难与自己的程序风格相一致,用户界面不友好,而且在这个默认的对话框中,用户可以随意改变任何设置,使得程序的控制难度加大。 
  (2)、 改变ThemeProperties对象属性
  通过设置ThemeProperties对象属性,可以使用自己定制的界面,给用户有限的修改能力,实现起来也非常简单,而且对用户的操作有全部的控制权。
  ThemeProperties对象是Themes集合中的一员,主要用于定义专题地图的显示,包括颜色、符号等。不同类型的专题图有自己与众不同的一些特性,在ThemeProperties中有其分别的定义。如DotSize专用于设定点密度专题图中点的大小,NumRanges专用于设定范围值专题图中的范围分布,SymbolStyle控制等级符号专题图使用的符号类型,ValuePerDot用于在点密度专题图中每个点所代表的值。
  ThemeProperties对象的属性中有许多又属于其他对象,如RangeCategory、IndividualValue、Style 等,可进行更深层次的设定。
  6、 自定义图例
  专题地图被创建后,MapX会自动生成一个图例来解释颜色、符号或大小所代表的含义。同ThemeDlg一样,可以直接用LegendDlg 方法调用默认的Legend对话框,但更常用的依旧是访问Theme.Legend 属性来进行一些个性化的设置。

 

基础使用代码介绍

在MapX中,提供了标准的地图工具,可以很容易地利用常用的标准工具开发出方便易用的地理信息系统,而不必针对每一种地图操作都完全靠开发者自已编程。MapX内置了常用的标准地图工具,主要分为两类:一是对象创建工具,用来创建地图图元;另一类是选择工具。在选择工具的使用时,可以配合功能键Shift和Ctrl键。它们包括:
  (1)改变地图比例尺和地图导航的工具:放大工具、缩小工具、平移工具和居中工具。
  (2)通过单击地图图元进行标注的标注工具。
  (3)以不同方式选择地图图元的选择工具集合。具体开发方法是:在程序适当位置激活某一个标准工具,把CurrentTool属性设为某一个常量,或直接用值。例如,在窗体中MapX控件为axMap1对象,当需要放大工具时:
  axMap1.CurrentTool = MapXLib.ToolConstants.miZoomInTool;
运行程序就会看到此鼠标光标变为了放大镜。其他工具设定的方法与此相同。在具体实现中经常会为用户提供一些工具条,上面有地图的标准操作工具,以方便用户操作地图,例如提供放大、缩小、平移和选择这4种常用的工具按钮,在按钮的命令中可以编写为:

 

// 地图放大工具
axMap1.CurrentTool  =  MapXLib.ToolConstants.miZoomInTool;

// 地图缩小工具
axMap1.CurrentTool  =  MapXLib.ToolConstants.miZoomOutTool;

// 缩放到初始大小(全图)、
axMap1.ZoomTo( this .MapZoom,  this .CenterX,  this .CenterY);

// 地图平移工具
axMap1.CurrentTool  =  MapXLib.ToolConstants.miPanTool;

// 地图选择工具
axMap1.CurrentTool  =  MapXLib.ToolConstants.miSelectTool;

// 矩形选择
axMap1.CurrentTool  =  MapXLib.ToolConstants.miRectSelectTool; 

// 圆形选择
axMap1.CurrentTool  =  MapXLib.ToolConstants.miRadiusSelectTool; 

// 打开图层对话框 
axMap1.Layers.LayersDlg( null null );

// 打开ActiveX属性对话框 
axMap1.ShowPropertyPages();
axMap1.Refresh();

// 添加符号
axMap1.CurrentTool  =  MapXLib.ToolConstants.miSymbolTool;

为了在地图中创建新的图元,或者修改已有的图元,需要地图编辑功能。MapX的标准工具提供了miAddPoint、ToolmiAddLine、ToolmiAddPolyLineTool、miAddRegionTool四种添加工具,分别属于添加点、添加线、添加折线和添加区域工具。对于添加工具,MapX指定将添加的图元放在Insertionlayer图层中。
因此需要在添加的图层前,先设定Insertionlayer图层,并将其设为可编辑的。方法如下:

axMap1.Layers.LayersDlg( null null );                          //  (1)
axMap1.Layers.InsertionLayer = axMap1.Layers[ 1 ];      //   (2)

其中(1)表示:打开图层对话框,在图层对话框中将当前图层设为可编辑;(2)表示:将Insertionlayer图层设定为当前层。

 

主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
专注于 Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
  转载请注明出处:
撰写人:伍华聪   http://www.iqidi.com 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#进行MapX二次开发之MapX基础知识 的相关文章

  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone

随机推荐

  • React根据条件渲染不同的组件

    最近在做一个电商后台管理项目 碰到了一个要根据前面的条件不同来渲染不同的组件 如下图所示 要根据商品的分类来显示不同的商品属性 最开始以为简单的使用switch来判断条件即可 但是在react组件当中 一个函数是不能返回另一个函数的 这就导
  • linux 命令之nc

    nc使用示例 端口扫描nc v w 2 192 168 2 34 z 21 24nc connect to 192 168 2 34 port 21 tcp failed Connection refusedConnection to 19
  • 数字后端基本概念介绍——Track

    今天要给大家介绍的数字后端基本概念是Track Track是指走线轨道 和row一样 可以约束走线器的走线方向 信号线通常必须走在track上 Std Cell的高度通常用metal2 track pitch来表示 常用的 std cell
  • 出租车费

    题目描述 某市出租车计价规则如下 起步4公里10元 即使你的行程没超过4公里 接下来的4公里 每公里2元 之后每公里2 4元 行程的最后一段即使不到1公里 也当作1公里计费 一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小 例
  • 关于 栈 和 队列,你还在犯迷糊吗?

    我是目录 1 队列 1 Queue 队列 2 Deque 双向队列 2 栈 从数据结构角度来看 栈 和 队列 都是一种特殊的线性结构 只是对 插入 删除 元素的方式做了限制 栈 先进后出 push pop peek 的时间复杂度都是 O 1
  • git rebase小计

    http www cnblogs com kym archive 2010 08 12 1797937 html git rebase 顾名思义 就是重新定义 re 起点 base 的作用 即重新定义分支的版本库状态 要搞清楚这个东西 要先
  • 74160同步置数法解析(以接成同步八进制计数器为例)

    我们先来看一下电路逻辑图 从中提取核心信息 将QD QC QB QA接成0010是为了配合LOAD引脚使用 以将74160的状态置为0010 计数器的最大状态为1001 当74160到达1001时 通过7400N与非门将LOAD引脚置为0
  • Linux 下安装zabbix

    一 下载安装zabbix 1 下载zabbix root localhost wget https mirrors tuna tsinghua edu cn zabbix zabbix 4 0 rhel 7 x86 64 zabbix re
  • OFFICE2016用过一段时间后正版密钥显示未激活问题

    转自百度知道 用户 kay陈健 侵删 一般出现这种问题是你电脑中先安装了一个版本的office 但是没有激活 没有将其卸载干净 然后又安装了另外一个版本的office 后者激活了 我也遇到了这个问题 目前已按如下方法解决 1 运行下面的命令
  • Arcgis 重装 的 license 问题

    1 卸载不干净 C arcgis安装目录 C ProgramData ESRI C Program Files x86 Common Files 2 注册表 删除有关Arcgis和ESRI的注册表 我是一条分割线 最后 我学会了重装系统
  • if...else; 嵌套if...else

    if else结构 如果怎么样 否则怎么样 if 分支条件 当条件满足时执行 else 当条件不满足时执行 注意 分支条件返回的一定是一个布尔类型 当分支中有且只有一行代码的时候 是可以省略大括号 gt 不推荐 和 之间不能添加任何符号 i
  • Java中 类名+方法名(){}的意思

    public class GetVersion public VersionBean get version code Context context String packagename if getPackageInfo context
  • pandoc 使用方法

    我是使用的 typora mac 版本 在下载 pandoc 完成后使用 pandoc 导出word时出现闪退情况 导致不能成功导出 然后就搜索到 pandoc 的命令行方法 以此记录下来 1 进入https pandoc org 下载 p
  • 代码片段

    以下代码是从Stack Overflow上看到的 对于C virtual的特性挺有参考意义的 于是记录下来 class A public void f std cout lt lt A lt lt std endl class B publ
  • 安全知识试题

    安全知识试题 一 单选题 共计30分 1 1分 在 QQ 群里有一朋友称 他们的学校近期有国外某知名大学教授来上课 上完课程后就可以拿到该大学文凭 但要交 26800 元的学费 正确的做法是 A 判定为诈骗信息 2 1分 在校园里东西丢失该
  • Android OpenGLES 学习笔记

    GL10 纹理问题 贴纹理的时候最好是要 2 n 字节对齐 这里说的是最后绑定到 GL 的那个图片 如果这个图片是由别的图片组合的 则组合的小图片没有这个要求 还有纹理的大小不能超过 GL 最大纹理大小的限制 查询方法 这里是 GL 标准的
  • vue+element表格使用vue-json-viewer实现查看JSON数据效果

    效果图 功能 在element弹窗中根据表格行查看当前行的JSON数据 高亮 可折叠 可复制 这里需要先安装vue json viewer插件 官网地址 https www npmjs com package vue json viewer
  • 神经网络编程基础

    目录 1 二分类 Binary Classification 2 逻辑回归 Logistic Regression 3 逻辑回归的代价函数 Logistic Regression Cost Function 4 梯度下降法 Gradient
  • nodejs调整版本问题

    因为接触到的项目渐渐增多 前端项目所需的nodejs版本也出现了分歧 之前一直用的14 16版本需要调换成八点几的版本 因为不会调整 所以多走了很多弯路 记录下来 以备不时之需 根据网络上所说可以使用nvm进行调整 所以在卸载nodejs之
  • C#进行MapX二次开发之MapX基础知识

    C 进行MapX二次开发之MapX基础知识 MapX的主要技术特点 1 以表 Table 的形式组织信息 每一个表都是一组MapInfo文件 这些文件组成了地图文件和数据库文件 为使用MapInfo 就需要有组成表的用户数据和地图文件 这些