Android移植mitab

4 篇文章 0 订阅
4 篇文章 0 订阅

需要打开地图的tab文件,找到了mitab项目,然而并没有适用嵌入式的版本,于是决定将其移植到android jni中。

  • 下载源代码
    先去官网下载源代码http://mitab.maptools.org/,已经很久未更新了,最新版本为mitab-1.7.0.zip
  • Android studio创建Native c++项目
    在这里插入图片描述
  • Copy mitab源代码
    将mitab-1.7.0.zip解压后,拷贝cpl,mitab,ogr目录到项目里,并将cpl/cpl_config.h.in拷贝到cpl/cpl_config.h中。如图所示。
    在这里插入图片描述
  • 配置CMakelists.txt
    增加头文件路径及默认宏的配置
include_directories(./)
include_directories(cpl)
include_directories(mitab)
include_directories(ogr)

add_definitions(-DCPL_LSB)

增加cpl源文件配置

set(CPL_SRCS cpl/cpl_conv.cpp cpl/cpl_error.cpp cpl/cpl_string.cpp cpl/cpl_vsisimple.cpp
        cpl/cplgetsymbol.cpp cpl/cpl_dir.cpp cpl/cpl_path.cpp cpl/cpl_csv.cpp cpl/cpl_findfile.cpp
        cpl/cpl_minixml.cpp cpl/cpl_vsil.cpp cpl/cpl_vsi_mem.cpp
        cpl/cpl_vsil_unix_stdio_64.cpp cpl/cpl_multiproc.cpp cpl/cplstring.cpp
        cpl/cpl_getexecpath.cpp)

增加mitab源文件配置

set(MITAB_SRCS mitab/mitab_rawbinblock.cpp mitab/mitab_mapheaderblock.cpp mitab/mitab_mapindexblock.cpp
        mitab/mitab_mapobjectblock.cpp mitab/mitab_mapcoordblock.cpp mitab/mitab_maptoolblock.cpp
        mitab/mitab_feature.cpp mitab/mitab_tooldef.cpp
        mitab/mitab_mapfile.cpp mitab/mitab_idfile.cpp mitab/mitab_datfile.cpp mitab/mitab_tabfile.cpp
        mitab/mitab_utils.cpp mitab/mitab_spatialref.cpp mitab/mitab_feature_mif.cpp
        mitab/mitab_middatafile.cpp mitab/mitab_miffile.cpp mitab/mitab_imapinfofile.cpp
        mitab/mitab_coordsys.cpp mitab/mitab_indfile.cpp mitab/mitab_tabview.cpp
        mitab/mitab_geometry.cpp mitab/mitab_capi.cpp mitab/mitab_bounds.cpp mitab/mitab_tabseamless.cpp)

增加ogr源文件配置

set(OGR_SRCS ogr/ogr_srsnode.cpp ogr/ogrcurve.cpp ogr/ogrfeature.cpp ogr/ogrfeaturedefn.cpp
        ogr/ogrgeometry.cpp ogr/ogrgeometrycollection.cpp ogr/ogrgeometryfactory.cpp
        ogr/ogrlinearring.cpp ogr/ogrlinestring.cpp ogr/ogrmultilinestring.cpp
        ogr/ogrmultipoint.cpp ogr/ogrmultipolygon.cpp ogr/ogrpoint.cpp ogr/ogrpolygon.cpp
        ogr/ogrspatialreference.cpp ogr/ogrsurface.cpp ogr/ogrutils.cpp
        ogr/ogrlayer.cpp ogr/ogrsfdriverregistrar.cpp ogr/ogrfielddefn.cpp
        ogr/ogr_srs_proj4.cpp ogr/ogrdatasource.cpp ogr/ogrsfdriver.cpp
        ogr/ogrfeaturestyle.cpp ogr/ogr_fromepsg.cpp ogr/ogrfeaturequery.cpp ogr/swq.c
        ogr/ogrct.cpp ogr/ogr_gensql.cpp ogr/ogr_srs_xml.cpp ogr/ogr_srs_esri.cpp
        ogr/ogr_api.cpp ogr/gml2ogrgeometry.cpp ogr/ogr2gmlgeometry.cpp
        ogr/ogr_miattrind.cpp ogr/ogr_attrind.cpp ogr/ogr_srs_dict.cpp)

将源文件配置到运行库里

add_library( # Sets the name of the library.
        native-lib

        # Sets the library as a shared library.
        SHARED

        # Provides a relative path to your source file(s).
        ${CPL_SRCS}
        ${MITAB_SRCS}
        ${OGR_SRCS}
        native-lib.cpp)

编译成功后就移植完成了,后面可以参考mitab/mitab_capi.cpp, mitab/mitab_capi.h,mitabc_test.c封装api给java使用,就不再赘述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值