博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gdal集成kml库的做法
阅读量:2429 次
发布时间:2019-05-10

本文共 1751 字,大约阅读时间需要 5 分钟。

作者:朱金灿

来源:

   

         最近要读取kml文件,具体就是把kml文件当作一个矢量文件来读取。我发现gdal是支持集成kml库的。不过集成这个kml库的地方有点复杂。下面作一个详细的说明。

 

        首先要libkml和expat这两个库,具体是修改gdal源码根目录下的nmake.opt,将EXPAT_DIR放在LIBKML_DIR的前面(为了确保EXPAT_LIB能被LIBKML_LIBS识别),具体修改如下:

# Uncomment for Expat support (required for KML, GPX and GeoRSS read support).EXPAT_DIR = $(THIRD_PARTY)/expat_2_1_0_vc9EXPAT_INCLUDE = -I$(EXPAT_DIR)/include!IFDEF DEBUGEXPAT_LIB = $(THIRD_PARTY)/expat_2_1_0_vc9/lib/libexpatD.lib!ELSEEXPAT_LIB = $(THIRD_PARTY)/expat_2_1_0_vc9/lib/libexpat.lib!ENDIF

LIBKML_DIR的设置修改如下:

# Uncomment out the following lines to enable LibKML support.LIBKML_DIR = $(THIRD_PARTY)/libkml_1_3_0_vc9LIBKML_INCLUDE = -I$(LIBKML_DIR)/include -I$(THIRD_PARTY)/boost_1_42_vc9/includeLIBKML_LIBRARY = $(LIBKML_DIR)/libLIBKML_LIBS =	$(LIBKML_LIBRARY)/libkmlbase.lib \		$(LIBKML_LIBRARY)/libkmlconvenience.lib \		$(LIBKML_LIBRARY)/libkmldom.lib \		$(LIBKML_LIBRARY)/libkmlengine.lib \		$(LIBKML_LIBRARY)/libkmlregionator.lib \		$(LIBKML_LIBRARY)/libkmlxsd.lib \		$(THIRD_PARTY)/minizip_vc9/lib/minizip_static.lib \		$(EXPAT_LIB) \		$(THIRD_PARTY)/uriparser_0_7_5_vc9/lib/uriparser.lib \#		$(LIBKML_DIR)/third_party\zlib-1.2.3.win32/lib/minizip.lib \		$(THIRD_PARTY)/zlib_1_2_3_vc9/lib/libzlib_vc9_1_2_3.lib

    可以除了kml本身的库外,还要添加minizip库、expat库、boost库和zip库。

 

这样就能将kml库集成进来。还有一点需要注意的是,我发现kml并不支持传统的shp文件的矢量类型,因此要重载kml图层类的GetGeomType接口(将kml类型转换为传统的shp的矢量类型),这个接口的实现代码如下:

OGRwkbGeometryType OGRLIBKMLLayer::GetGeomType(){	OGRwkbGeometryType eType = wkbUnknown;	OGRFeature* pFeature = NULL;	ResetReading();	pFeature = GetNextFeature();	if (pFeature != NULL)	{		OGRGeometry* pGeometry = pFeature->GetGeometryRef();		if (pGeometry != NULL)		{			eType = pGeometry->getGeometryType();		}	}	m_poOgrFeatureDefn->SetGeomType(eType);	return eType;}

转载地址:http://ffimb.baihongyu.com/

你可能感兴趣的文章
Alibaba 服务路由工作
查看>>
SSH服务器拒绝了密码,请再试一次,亲测有效
查看>>
Ubuntu 16.04安装docker详细步骤
查看>>
window系统强制关闭软件被占用端口号,如9000
查看>>
docker-compose 安装和卸载
查看>>
软件工程修行
查看>>
Google评分卡
查看>>
10部程序员必看的纪录片
查看>>
WindowsStore_LTSC 2019_win10应用商店恢复包
查看>>
windows 10 配置Java 环境变量
查看>>
历史上15位知名的计算机科学家
查看>>
软件业历史
查看>>
中国软件产业的历史变迁与未来展望
查看>>
Windows 10 1809 LTSC(Build 17763.1) Edge浏览器一键安装包
查看>>
TrayIt! – 史上最强的最小化到托盘
查看>>
Chromium Microsoft Edge 浏览器现已可供下载
查看>>
数学到底有多重要呢?
查看>>
数学,远比你想象的重要!
查看>>
Spring的IoC原理
查看>>
Java AOP & Spring AOP 原理和实现
查看>>