C++
yGIS
这个作者很懒,什么都没留下…
展开
-
visual studio2012编译32位和64位的zlib
最近项目中运用到了,zlib库。正好借此机会来学习一下在visual studio中编译该库,我这里使用了visual studio2012,首先来看一下下载的文件目录如下图所示。一、编译64位的zlib进入到该目录的contrib下的vstudio中,这里选择vc11,使用visual studio2012打开zlibvc.sln文件。然后如下图所示,选择zlibvc右击属性...原创 2018-12-27 18:08:57 · 1254 阅读 · 0 评论 -
【visual studio调试】&查看指针数组值
在编写c++程序时候,如果使用鼠标移动查看变量,往往是一个值。而我们需要查看所有的值,可以在【调试】中找到【快速监视】如下图所示,输入我们的变量。然后我们查看变量的前一个20个值,只要输入如下的值即可。rasterHeights,20。...原创 2019-03-26 12:01:42 · 8981 阅读 · 2 评论 -
C++读取osgb
string data_dir = osgb_dir; //std::string ext = osgDB::getLowerCaseFileExtension(data_dir); osgDB::ReaderWriter::Options* options=NULL; std::string fileName = osgDB::findDataFile(osgb_dir, optio...原创 2019-04-04 11:26:37 · 6371 阅读 · 3 评论 -
Cesium开发&Terrain数字高程地形数据编码与解码
这几天在开发地形数据发布工具的时候,对应数字高程地形数据的编码与解码中遇到如下的问题。提示的错误是:Expected sizeInBytes to be greater than 0, actual value was 0根据上面的提示,应该是加载四叉树数据出现了问题,再根据console控制台输出的提示,我想应该是开发地形发布工具切的地形高程数据出现了问题。于是在C++编写...原创 2019-03-31 19:18:14 · 3254 阅读 · 1 评论 -
Cesium开发&gdal地形数据切割问题
在使用读取数字高程数据dem的tif格式时,用到了gdal来获取。我这里编译好了带有可以投影转换的gdal2.0.0版本,gdal从2.0.0开始将读取矢量和栅格统一为一个类了。而我们这里需要用到读取tif预览数据,使用下面这个函数。staticGDALDatasetHgetOverviewDataset(GDALDatasetH hSrcDS, GDALTransformerFunc ...原创 2019-03-27 19:25:32 · 1942 阅读 · 2 评论 -
C++将坐标数据写入txt文件
记录一下写的txt文件,现在是将坐标数据写入到该文件中,具体的实现代码如下。 ofstream outfile("D:\\TIF\\dem\\cesium_result_qinyan_qm_16\\data.txt", ios::trunc); outfile.setf(ios::fixed, ios::floatfield); outfile.precision(12); ...原创 2019-03-28 15:02:46 · 3425 阅读 · 1 评论 -
Cesium开发&关于tinygltf库
最近在写osgb倾斜数据发布工具的时候,用到了tingygltf库。这个库用依赖于json.hpp。目前新版本的为2.2,在该版本中已经摄取gltf数据序列化函数。转而依旧保存着将json写入到文件成为gltf数据函数。其实在osgb数据发布还是利用到序列化函数的。而在老版本的tinygltf库中序列化函数如下。std::string TinyGLTF::Serialize(Model *m...原创 2019-04-11 20:44:21 · 3127 阅读 · 1 评论 -
boost读取文件报std::length_error错误
今天在使用boost来读取文件时候使用的boost::filesystem出现了错误。std::length_error,因为我是调试模式,所以必须使用debug编译下lib的boost库。boost_filesystem-vc140-mt-gd-1_64.dll,对应的boost_filesystem-vc140-mt-gd-1_64.lib...原创 2019-04-03 10:52:18 · 2301 阅读 · 0 评论 -
Cesium开发&osgb倾斜数据发布工具开发数据解析遇到的问题
今天在写到osgb数据解析,用到的tinygltf是高版本的,模型类Model带有扩展属性。其中扩展数据需要相应的键值解析json,这里使用的是tinygltf2.2,该版本需要std_img_write.h v1.11的支持,目前我使用的是这个版本。这事起于,自己想解决3dtile中不需要修改前端代码,而是修改3dtile的数据格式,这样的一个想法。那么这里着重是要解决扩展数据json的拼接。而...原创 2019-04-12 21:30:04 · 1745 阅读 · 0 评论 -
win10+visual studio2015+Camke编译geos详细过程
相信geos这个库,对于绝大多数的giser来说应该是不陌生的。好了,因为最近项目的需要编译了这个库。这里把编译的过程记录下来。首先从geos官网上面下载打包好的源代码,其中链接如下。https://trac.osgeo.org/geos/,大家可以根据自己的需要,如下图所示,选择相应的版本。我这里选择的是geos3.7.1。当然了,如果想看geos源码的小伙伴可以链接。https://git...原创 2019-04-13 15:27:39 · 977 阅读 · 1 评论 -
【geos学习一】&面的创建,与相交判断
这个例子是摘自geo源代码中一个工程文件,主要是学习会使用geos来创建面,以及面两个面位置关系的判断。具体的实现代码如下所示。// bug234.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <vector>#include "geos/geom/GeometryFactory.h"#include "geos...原创 2019-04-13 16:24:23 · 2013 阅读 · 0 评论 -
libtiff中的tag标签含义
TIFFTAG_ARTIST 1 char**TIFFTAG_BADFAXLINES 1 uint32*TIFFTAG_BITSPERSAMPLE 1 uint16* 每个像素点位数TIFFTAG_CLEANFAXDATA 1 uint16*TIFFTAG_COLORMAP3 uint16** 色图TIFFTAG_COMPRESSION 1 uint16* 压缩TIFFTAG_CO...转载 2019-04-21 12:12:12 · 1404 阅读 · 0 评论 -
C++无法从“initializer list”转换为
刚接触C++,在写结构体的时候初始化遇到了这样的错误。错误 C2440 “初始化”: 无法从“initializer list”转换为.....我的结构体是这样初始化的,如下。detail::GLBHeader header{ detail::GLBHeaderMagic, 2, 0, { 0, detail::GLBChunkJSON } };就出现了上面的问题。改...原创 2019-05-07 10:00:51 · 17016 阅读 · 0 评论 -
cesium开发&Terrain地形切片原理分析
首先由缩放的层级计算出切片的位置,其中整个切片的层级是第0级,即由两个切片组成,如下图所示,第一张切片的左下角位置为(-180,-90),右上角为(0,90),第二张图片左下角为(0,-90)右上角为(180,90),依次每张切片的唯一标识,按照l/x/y.terrain,来组织文件结构。而第二图所示,即为表示层级为8、x为407、y为165的地形切片数据。一开始需要计算出地形影像在每...原创 2019-03-14 08:51:29 · 7230 阅读 · 0 评论 -
visual studio2012编译32位和64位的GDAL
我这里使用的编译环境是win10,visual studio2012,gadl1.12。就像网络上提供的资料一样,修改nmake.opt中的GDAL_HOME路径,这里的路径是我们下载的gdal源代码。注意visual studio2012版本支持gdal1.12,对于版本的gdal需要版本的visual studio支持,因此编译高版本的gdal尽量使用高版本的visual studio如果想编...原创 2018-12-27 19:49:29 · 734 阅读 · 2 评论 -
Visual Studio2017编译支持proj4.8的GDAL2.2.3库
最近由于项目的需要,编译的gdal需要proj库的支持,现在特地将其中遇到的错误记录下来。首先修改GDAL_HOME的路径。添加对64位的支持:添加对proj投影库的支持:注释掉对矢量odbc的支持,无奈因为编译到最后会报无法解析的外部符号,#ODBC_SUPPORTED=1error LNK2019: unresolved external symbol ...原创 2018-12-28 23:19:06 · 1030 阅读 · 0 评论 -
由于找不到osg130-osgDBd.dll,无法继续执行代码。重新安装程序可能会解决问题
由于找不到osg130-osgDBd.dll,无法继续执行代码。重新安装程序可能会解决问题今天在写矢量发布工具的时候,遇到如下的问题。根据提示,很显然是缺少了osg130-osgDBd.dll这个文件,上网查询了很多资料。有说是重启一电脑就可以了。最后还是没有解决问题,后面看了一下我的编译的osg文件中bin目录下有osg130-osgDB.dll、同时还有osg130-osgDBd.dll。...原创 2019-01-18 17:08:57 · 6119 阅读 · 2 评论 -
OSG3.4.0+VS2015+WIN10环境下编译
由于最近项目需要,使用到了osg,那么来看一下什么是osg,看一下百度百科,如下所示。OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件(middleware)为应用软件提供了各种高级渲染特性,IO,以及空间结构组织函数;而更低层次的OpenGL 硬件抽...原创 2019-01-18 18:49:22 · 810 阅读 · 0 评论 -
win10+mingw编译boost1.64库
最近由于项目的需要,来编译了一下boost库,我这里使用的mingw的方式来编译的,那么首先要确保安装好了mingw,需要将mingw的bin目录设置在环境目录下,cmd进入到控制台命令,如下图所示,看一下我们安装好的编译器。有版本相关的信息。如上图所示。进入到boost库源码目录。事先生成b2.exe等文件。执行bootstrap gcc命令。b2 -j8 -...原创 2019-02-25 22:16:52 · 840 阅读 · 0 评论 -
win10+编译gmp大数库
最近项目需要使用到gmp,现在编译来看一下编译一下gmp。我们需要按照mingw,在安装目录下面有msys文件夹,只要运行该目录下的msys.bat文件即可。如下图所示。首先需要下载gmp-6.1.2.tar.bz2https://gmplib.org/然后就是。msys.exe链接:https://pan.baidu.com/s/1ljX8SpbKFsWZwkBwtbcbgA...原创 2019-02-27 11:03:52 · 2455 阅读 · 4 评论 -
(一)GDAL开发&OGRSpatialReference投影
这几天在使用GDAL来读取遥感数据,其中涉及到投影的转换。一开始我是在自己的电脑上可以运行得成功的。之后在我们同事的电脑上运行就出现了问题。具体问题是创建创建投影的时候返回了空。我们知道用GDAL定义投影是OGRSpatialReference类来创建,其中如果需要转换,还需要proj.dll库,否则我们的运行程序是无法运行的,或者返回空的。现在使用下面的三种方式来创建了投影参考。 ch...原创 2019-03-08 21:00:00 · 6468 阅读 · 2 评论 -
C++生成uuid
最近项目的需要,使用了C++来生成uuid。这里找到了githup上面的sole.hpp。具体使用方法。可以参考网站。https://github.com/r-lyeh-archived/sole那么下面,我们来看一下以v0的方式生成uuid。 sole::uuid u0 = sole::uuid0(); string stru0 = u0.str();因为是在其他方面的...原创 2019-05-15 20:10:54 · 8978 阅读 · 0 评论