GIS
bdbox@qq.com
资料
展开
-
在Visual Studio中引用和链接OpenSceneGraph (OSG) 库
【代码】在Visual Studio中引用和链接OpenSceneGraph (OSG) 库。原创 2024-02-08 08:52:06 · 807 阅读 · 0 评论 -
Arcmap计算空间中两个点间的长度:
Arcmap计算空间中两个点间的长度:原创 2023-03-21 15:38:04 · 170 阅读 · 0 评论 -
QGIS、Openlayers、proj4js使用地方坐标系
1、找遍各种资料,都说proj4js只能采用epsg定义好的(http://www.注意:此时定义的坐标系,应该是与QGIS中的是不一致的,也无法互认的。1)使用QGIS切片前,数据源要配置成地方坐标系。使用QGIS自带的切片工具进行。本人经手一个内部使用的GIS系统,需要采用地方坐标系。当然,map的view中是可以加的。原创 2022-11-09 15:50:29 · 608 阅读 · 0 评论 -
Geoserver 2.20.x 使用SVG符号的准确方法
Geoserver 2.20.x 使用SVG符号的准确方法原创 2022-10-11 21:42:53 · 4606 阅读 · 3 评论 -
NetTopologySuite + PostGIS开发之如何定义带Z的Geometry
/// <summary> /// 位置 /// </summary> public class Position { public int Id { get; set; } /// <summary> /// 所在位置 /// </summary> [Column(TypeName = "geometry(PointZ)")] ...原创 2021-08-27 14:13:16 · 339 阅读 · 0 评论 -
CityMaker 8 二次开发之IUIStaticLabel如何设置字体大小和颜色?
帮助文档里没有具体说明,直接上代码:IUIStaticLabel staticLab1 = manager.CreateStaticLabel();string font1 = manager.CreateUIFont(15f, "aa");staticLab1.Text = "[font='" + font1 + "'][colour='FF0000FF']30/立方米";原创 2020-06-26 12:14:06 · 272 阅读 · 0 评论 -
citymaker 8二次开发之连接MySQL时的注意事项
citymaker 8二次开发之连接MySQL时,需要注意不能重复使用fds,必须要关闭后重新打卡,否则出现 “外部组件发生异常”。fc.Dispose();ds.Dispose();fds.Dispose();ds = (new DataSourceFactory()).OpenDataSource(conn);fds = ds.OpenFeatureDataset(fl....原创 2019-10-22 17:17:46 · 166 阅读 · 0 评论 -
CityMaker 8 二次开发之ExportOrthoImage的IEnvelope
欢迎批评指正,转载请注明出处和作者QQ:3133952829原创 2018-07-25 18:00:14 · 377 阅读 · 0 评论 -
CityMaker 8二次开发之IDrawPrimitive是什么?
IDrawPrimitive是什么?按照CityMaker帮助文档的表述及注释表述如下:1)IDrawPrimitive:绘制单元,用于存储绘制的材质,可获取和设置颜色数组绘制模式和类型。2)IDrawPrimitive表示一个绘制单元,一个DrawPrimitive对应一种材质Material,对应一个顶点数组。IDrawPrimitive是CityMaker平台对模型的组织的基础,有必要对ID...原创 2018-06-19 11:26:21 · 467 阅读 · 0 评论 -
CityMaker 8二次开发之贴图2贴图时是增加还是减少uv的数值?
如何做纹理映射,实际上就是如何把一张贴图上的点与模型上面上的点想对应起来。计算过程用到向量相关知识,因为都是在二维平面上来操作的。举个例子:如下图:如果要把一张图贴在一个面上,看右边的图,绿色框是模型,黑色框是贴图,要把黑色框贴好,像左边图一样。那么c到c'是如何处理呢?如果把c和c'简单的设置为想关联,就会出现拉伸了,就像一根橡皮被拉伸成1.5倍的情况。左边的图并没有拉伸过。这里...原创 2018-06-25 18:37:08 · 323 阅读 · 0 评论 -
CityMaker 8二次开发之关于IDrawPrimitive1
IDrawPrimitive是具有相同Material的面的集合。也就是说,IDrawPrimitive不一定是三角的。也有可能是多角的。三角面顶点数组有两种构造方式:1、一般数组模式,所有三角面的所有顶点坐标,按顺序放入VertexArray。在CityMaker中,IndexArray为null是为这种模式,VertexArray中每9个数值描述一个三角面。2、顶点索引模式,重合的顶点只会保存...翻译 2018-06-15 17:46:06 · 189 阅读 · 0 评论 -
citymaker connect 8 插件式开发总结之图层树
1、IRender相关的对象都是由AxRenderControl.ObjectManager进行管理的(创建、删除、刷新等)。IFeatureLayer也属于IRender的子类。如:RenderControlServices.Instance().AxRenderControl.ObjectManager.DeleteObject(oldFLayer.Guid);获取某个渲染对象的方法:IROb...原创 2018-04-11 15:49:23 · 835 阅读 · 0 评论 -
citymaker 8 插件式开发之从Pro 7到connect 8遇到的坑
1、(FieldInfoCollection)Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("E504B735-A3AF-4D21-AF4C-38C0A6F9B82D")))必须这样写了:new FieldInfoCollection();2、COMException类 变为 Gvitech.CityMa...原创 2018-04-11 16:42:18 · 817 阅读 · 0 评论 -
CityMaker 8 二次开发遇到的一些坑
1、需要拷贝bin目录(一般有runtime的吧)下的所有文件到debug目录下,否则会出现“未能加载由XX导入的过程”:2、VS设计时,不能通过拖拽的方式放置控件了。建议:1)先用一个button,拖拽完后,将button替换一下,设计完成后替换以下代码。2)在窗体对应的design.cs代码里,直接加代码,如下: private Gvitech.CityMaker.Control...原创 2018-04-17 15:12:25 · 1580 阅读 · 0 评论 -
citymaker connect 8 插件式开发之渲染对象与持久对象
citymaker connect 8 插件式开发之从渲染对象与持久对象1、渲染对象与持久对象,以及设计思想:IRenderable对象意味着只在当前会话(具体的ecp文件)下会能够起效果,新创建的场景不受到影响,一般由AxRenderControl.ObjectManager来管理。典型的类包括:ITerrainModifier、IFeatureLayer等。与之对应的是需要持久保存的对象,需要...原创 2018-04-12 09:31:54 · 616 阅读 · 0 评论 -
citymaker connect 8 插件式开发之控制框架主窗体
插件开发有时需要对主窗体或某些控件进行控制,比如,我希望改变一下主窗体的标题文字,不再是“CityMaker Connect 8.0....”,我们可以通过操控CityMaker Connect框架的主窗体对象完成:MainFrmService.MainFrm.Text = "我爱味精行";当然,所能达到的效果不仅如此。我们来改变一下界面显示风格:UserLookAndFeel.Default.S...原创 2018-04-12 15:54:53 · 582 阅读 · 0 评论 -
CityMaker 8二次开发之“这是什么鬼?”
什么时候才能去掉头重脚轻的毛病?1、Doc:void IProjectTree.SetVisibility ( Guid ID, byte VisibleMask) 设置可见性。 Note:byte VisibleMask 这是什么?设置可见性?该如何设置?可能:gviViewportMask是控制在不同视口的可见性的标识,如果需要设置多个,可以这样:gviView0|gviView...原创 2018-04-27 11:22:33 · 1154 阅读 · 0 评论 -
CityMaker 8二次开发之顶点数组(IFloatArray)的构成
IFloatArray是api中用于存储数组的一个接口。IFloatArray如何构成?举个栗子就明白了。如图:这个点的FloatArray构成就是x=FloatArray.get(1),y=FloatArray.get(2),y=FloatArray.get(3),如果你想遍历所有的节点,就必须这样操作:List<IPoint> pts = new List<IPoint>...原创 2018-06-12 15:58:55 · 199 阅读 · 0 评论 -
CityMaker 8二次开发之基础数学知识-向量1
前言:勿在浮沙筑高台做开发的有两种人:一种是堆砌代码的人,一种是思考代码背后思想的人。堆砌代码的人不思考,对技术理解并不深刻,对于基础知识的掌握还缺火候,浮云表面,很容易就倒台了。哈哈,我属于前者哦,多年过去了,没有积累,越走越累。奉劝大家踏踏实实做后者。正文:结合CityMaker随便写写二次开发中的数学基础知识-向量,向量用于对于在二维、三维场景中计算点、位置、角度等都有作用,这里提醒一下,要...原创 2018-06-13 17:39:12 · 358 阅读 · 0 评论 -
CityMaker 8二次开发之基础数学知识-向量2
关于在CityMaker中做二次开发,向量的一些使用说明:1、从定义知道,向量是与位置无关的,但我们在实际使用中,坐标加上某个点就可以实现平移。2、如何表达向量的方向?只要定义了向量,就已经表达了方向。虽然向量同时具有长度和方向,长度可以用标量表达,但是方向无法用某种方式表达(如果要说标准化的向量也是对的)。所以只要定义了向量,就表达了方向。例如: ...原创 2018-06-21 17:44:22 · 558 阅读 · 0 评论 -
CityMaker 8二次开发之贴图1
有一个任务,需要将以下贴图贴至某个面上。在CityMaker中的原理如下:很显然,计算纹理坐标是这个任务的关键,也就是分别计算a,b,c,d在新坐标下的坐标(每个点的u,v坐标),并且换算成新坐标。这个过程叫做纹理映射。我们需要将如下我们可以用向量的方法来计算每个点的坐标,计算过程是这样的:1)a':就是(0,0)。注意某些文献中认为(0,0)位于左上角,在citymaker api中是做了处理的...原创 2018-06-14 17:30:49 · 659 阅读 · 0 评论 -
CityMaker 8二次开发之基础数学知识-向量3两向量的方向
关于向量应用,后续的章节会做的。如下图:现在需要求向量a,b的夹角θ,这是很常用的一个要求。我们知道向量的点乘,表达两个向量的相似程度,也就是,可以用于计算两向量之间的夹角。求夹角公式:这个公式求得的夹角,是a到b还是b到a的呢?这个就要看哪个在前了,也就是,这个是a->b的夹角,如果是b->a的,正好反过来。在CityMaker二次开发中的小段简单示例代码(求向量BC到BA的夹角,结...原创 2018-06-22 17:44:58 · 193 阅读 · 0 评论