随笔分类 - 开源项目学习
学习一些优秀的开源项目!
摘要:ShapeLib的.net Wapper版可以在官网下载到,在WorldWind中也有使用。ORG据说也是使用的ShapeLib实现的shp文件的读写。 官网:http://shapelib.maptools.org/ 1. C++读取shpfile文件代码 输出结果: 2. 以下是.net读取Sh
阅读全文
摘要:原来也思考了该如何实现标注动态避让,认为必须得计算字符串所占的大小。如果在屏幕上要计算屏幕象素之类的东西。今天总算找到了实现方法,在C# WorldWind中的KMLImporter类中有。关键是Font的如下方法:public Rectangle MeasureString(Sprite spri...
阅读全文
摘要:OGIS规范定义的几何对象定义Curve:A Curve is a 1-dimensional geometric object usually stored as a sequence of Points, with the subtype of Curve specifying the form...
阅读全文
摘要:问题:WorldWind中是双线程的,一直忽略了多线程中数据共享,修改数据会产生问题。可是在WW中并没有看到锁的东西。还有就是动态释放内存的问题。因为采用D3D的C#封装库不可避免涉及COM对象的释放问题,是否会导致内存溢出的问题。一点分析:在Update方法中,首先判断渲染对象是否初始化成功isInitialized,没有成功就初始化数据,初始化主要负责构建顶点数组和索引数组,以及顶点缓存等,接着就将isInitialized设置为true。虽然执行Update的同时,主线程也在调用Render方法,但是如果isInitialized==false,不会执行渲染的操作。也就是说没有造成初始化
阅读全文
摘要:QuadTile的CreateElevatedMesh()方法中:1 //获取地形瓦片2 TerrainTile tile = QuadTileSet.World.TerrainAccessor.GetElevationArray(North + degreePerSample, South - degreePerSample, West - degreePerSample, East + degreePerSample, vertexCountElevated + 3);3 float[,] heightData = tile.ElevationData;调用了World的TerrainA.
阅读全文
摘要:FrameRateThe rate at which the control should be re-drawn, in Hertz. 赫兹FPS渲染帧率=1000.0 / frameTime
阅读全文
摘要:采用CSLA.net 2.1.4.0版本的书写方式: 1 using System; 2 using System.ComponentModel; 3 using Csla.Validation; 4 using System.Data.OleDb; 5 using DBDemo.DbUtility; 6 using System.Data; 7 8 namespace DBDemo.MVC.Model 9 { 10 class Student:Csla.BusinessBase 11 { 12 #region Business Prope...
阅读全文
摘要:1. SharpMap中屏幕坐标和地图Map坐标转换: 1 using System.Drawing; 2 using GeoAPI.Geometries; 3 4 namespace SharpMap.Utilities 5 { 6 /// 7 /// Class for transforming between world and image coordinate 8 /// 9 public class Transform10 {11 /// 12 /// Transforms from world coord...
阅读全文
摘要:1. 开源社区 SourceForge.net:http://sourceforge.net/ CodeProject :http://www.codeproject.com/ Codeplex:http://www.codeplex.com/ GitHub:https://github.com/
阅读全文
摘要:1.OpenS-CAD是一个不错的小巧的开源程序,以图层方式组织图形,可以绘制基本的线段、弧段、圆,可以进行节点对象捕捉,可以选择几何对象、对图幅进行平移、放大、缩小。可以将结果序列化保存为xml格式。其中的图形数据绘制组织方式和局部刷新知识点值得学习。http://www.codeproject.com/Articles/22549/OpenS-CAD-a-simple-2D-CAD-application2.基本架构 多文档/视图结构。 将活动的DocumentForm的菜单作为主窗体的菜单。3.绘制的一点分析 将绘制成功的对象加入集合,在OnPaint中统一进行绘制(绘制在位图上)...
阅读全文
摘要:https://github.com/Titifonky/DXFLibraryDXF 参考手册:http://docs.autodesk.com/ACD/2011/CHS/filesDXF/WSfacf1429558a55de185c428100849a0ab7-5f35.htm附上测试源码:下载
阅读全文
摘要:在这里我们看到判断Lod的级别主要有三个条件: * 1、相机视角范围,视角范围越大,所包含的tileSize就越大 * 2、相机与瓦片距离,距离越远,所包含的tileSize也就越大 * 3、相机视锥与瓦片是否相交 相对应我们可以把视角剔除方法理解成以下三步: * 1、根据视角范围,画个大圈,把大圈
阅读全文
摘要:本来希望从GlobeMapper中生成切片直接加载到WorldWind中,但是没有成功!所以想比较一下和dstile生成的瓦片到底有什么区别?所以这才第一次生成并加载了影像瓦片。貌似和GlobeMapper中的区别是路径的命名方式不一样!GlobeMapper是xx_xx.jpg,文件夹也都是两位。而dstile或者说WW需要的是4位,即xxxx_xxxx.jpg。——2013.10.24-------------------------------------今天又测试了一下,证明了GlobeMapper中制作的切片确实可以在WorldWind中显示。跟踪代码QuadTile类Initial
阅读全文
摘要:PluginSDK\ShapeFileLayer.cs Line:1027char[] fieldDataChars = dbfReader.ReadChars(fieldHeaders[j].FieldLength); string fieldData = new string( fieldDataChars ); 为 byte[] fieldDataChars = dbfReader.ReadBytes(fieldHeaders[j].FieldLength); string fieldData = System.Text.Encoding.Default.GetString( field
阅读全文
摘要:原文链接:http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/Addressing tiles: same tile bounds with different indexesGoogle Maps, Microsoft Virtual Earth, Yahoo Maps, and other commercial API providers as well as OpenStreetMap and OpenAerialMap are using the same projection and tilin
阅读全文
摘要:Bing Maps Tile System Bing地图瓦片体系 原文链接:http://msdn.microsoft.com/en-us/library/bb259689.aspx https://learn.microsoft.com/en-us/bingmaps/articles/bing-m
阅读全文
摘要:1 using System; 2 using System.Diagnostics; 3 using System.Globalization; 4 using System.Net; 5 using System.IO; 6 using System.IO.Compression; 7 using System.Threading; 8 using System.Xml; 9 using Utility; 10 using WorldWind; 11 12 namespace WorldWind.Net 13 { 14 public delegate void...
阅读全文
摘要:WorldWind实时确定、更新、初始化和渲染地形和纹理数据 原文链接: http://www.cnblogs.com/rainbow70626/p/5597267.html 当用户点击WorldWind中的地球时,首先响应的是WorldWindow.OnPaint()函数,后续程序的调用流程如下图
阅读全文