gpt4 book ai didi

ios - iOS 中的 GDAL,运行时 dll proj4 不可用,OGR 函数不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:01 26 4
gpt4 key购买 nike

我在 iOS 上编译的 gdal 有一些问题(gdal 内部使用 proj 进行某些操作)

我正在为 iOS 开发,想使用这个库来执行坐标转换,但是有些功能需要 proj dll 并且在运行时我得到这个错误:

ERROR 6: Unable to load PROJ.4 library (libproj.dylib), creation of
OGRCoordinateTransformation failed.
Transformation failed.

我想应该将 proj dll 作为静态库包括在内,但我找不到如何做

( 其他问题,只是提一下:我无法访问 EPSG 数据库和 gcs.csv,所以只有 SetGeogCS() 方法似乎可用于设置坐标系,但我不知道应该使用哪些参数来获得“EPSG:3003”坐标系,“Italia fuso ovest”)

CLLocationCoordinate2D transform( char *s_srs, double x, double y)

{
OGRSpatialReference oSourceSRS, oTargetSRS;
OGRCoordinateTransformation *poCT;

/* oSourceSRS.importFromEPSG( atoi(papszArgv[i+1]) );
//oTargetSRS.importFromEPSG( atoi(papszArgv[i+2]) ); */

/*
oSourceSRS.SetWellKnownGeogCS(s_srs);
*/
oSourceSRS.SetGeogCS( "My geographic coordinate system",
"WGS_1984",
"My WGS84 Spheroid",
SRS_WGS84_SEMIMAJOR, SRS_WGS84_INVFLATTENING,
"Greenwich", 0.0,
"degree",
atof(SRS_UA_DEGREE_CONV) );

/*
oTargetSRS.SetWellKnownGeogCS("WGS84");
*/
oTargetSRS.SetGeogCS( "My geographic coordinate system",
"WGS_1984",
"My WGS84 Spheroid",
SRS_WGS84_SEMIMAJOR, SRS_WGS84_INVFLATTENING,
"Greenwich", 0.0,
"degree",
atof(SRS_UA_DEGREE_CONV) );


poCT = OGRCreateCoordinateTransformation( &oSourceSRS,
&oTargetSRS );


if( poCT == NULL || !poCT->Transform( 1, &x, &y ) ) {
printf( "Transformation failed.\n" );
return CLLocationCoordinate2DMake(x, y);
} else {
return CLLocationCoordinate2DMake(x, y);
}

}

最佳答案

您需要先下载并构建适用于 iOS 的 proj4。然后,您可以使用 ./configure 标志将 GDAL 指向 proj4 的 iOS 版本

--with-static-proj4=/path/to/your/libproj

确保该路径是包含 proj4 的 include 目录和 lib 目录的父目录。

例如我在 Mac 上的目录是:

/Users/myUsername/iOS_builds/{device_arch}/iphoneos.platform/iphoneos.7.0.sdk

设备架构可以是 i386、armv7 或 armv7s,具体取决于我正在编译的目标。该目录包含“include”和“lib”子目录,它们又包含 .h 文件和用于链接到 GDAL 的 libproj.a 文件。

我有一个正在开发的脚本,用于帮助在 github 上构建 GDAL 和相关库。 https://github.com/afarnham/preflight

如果您没有安装 Xcode 5,您可能必须对该脚本中指定的编译器进行一些编辑才能使其正常工作。此外,一些配置标志可能需要为 GDAL 更新。不过,它应该可以帮助您入门。

关于ios - iOS 中的 GDAL,运行时 dll proj4 不可用,OGR 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16666024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com