《GeoPackage Libraries》是在美国国家地理空间情报局 (NGA)以及BIT Systems的协作下开发的。政府拥有"无限权利",并发布此软件以通过为开发者提供将事物引向新方向的机会来增加政府对投资的回报。软件的使用、修改和分发权利详见MIT许可证。
如果您想为这个项目贡献力量,请提出一个拉取请求。我们将审查 pull request 并讨论这些更改。本项目接受的全部 pull request 贡献将根据 MIT 许可证发布。
先前以开源许可证发布并被 NGA 工作人员修改的软件代码被认定为"协同作品"(参见 17 USC § 101);它是部分版权作品、部分公有领域作品,作为一个整体则受到非政府作者版权的保护,并必须根据原始开源许可证的条款发布。
WKB是一个iOS Objective-C库,用于将 Well-Known Binary 几何形状写入字节并从中读取。该库包含一组几何对象。尽管作为GeoPackage Libraries的一部分开发,但这个库不包含GeoPackage功能,可以独立使用。
查看 CocoaDocs 上的最新 Appledoc
//NSData * bytes = ...
WKBByteReader * reader = [[WKBByteReader alloc] initWithData:bytes];
[reader setByteOrder:CFByteOrderBigEndian];
WKBGeometry * geometry = [WKBGeometryReader readGeometryWithReader:reader];
WKBGeometryType geometryType = geometry.geometryType;
//WKBGeometry * geometry = ...
WKBByteWriter * writer = [[WKBByteWriter alloc] init];
[writer setByteOrder:CFByteOrderBigEndian];
[WKBGeometryWriter writeGeometry:geometry withWriter:writer];
NSData * bytes = [writer getData];
[writer close];
使用 Xcode 和/或 CocoaPods 构建此仓库
pod install
在 Xcode 中打开 wkb-ios.xcworkspace,或从命令行进行构建
xcodebuild -workspace 'wkb-ios.xcworkspace' -scheme wkb-ios build
从 Xcode 或从命令行运行测试
xcodebuild test -workspace 'wkb-ios.xcworkspace' -scheme wkb-ios -destination 'platform=iOS Simulator,name=iPhone 6s'
使用支持选项在 Podfile 中指定此仓库以包含它。
从 CocoaPods 拉取
pod 'wkb-ios', '~> 1.0'
从 GitHub 拉取
pod 'wkb-ios', :git => 'https://github.com/ngageoint/geopackage-wkb-iOS.git', :branch => 'master'
pod 'wkb-ios', :git => 'https://github.com/ngageoint/geopackage-wkb-iOS.git', :tag => '1.0.8'
作为本地项目包含
pod 'wkb-ios', :path => '../geopackage-wkb-ios'
要从 Swift 中使用,请从 Swift 项目的 bridging header 中导入 wkb-ios bridging header。
#import "wkb-ios-Bridging-Header.h"
// let bytes: NSData = ...
let reader: WKBByteReader = WKBByteReader(data: bytes);
reader.byteOrder = Int(CFByteOrderBigEndian.rawValue);
let geometry: WKBGeometry = WKBGeometryReader.readGeometryWithReader(reader);
let geometryType: WKBGeometryType = geometry.geometryType;
//let geometry: WKBGeometry = ...
let writer: WKBByteWriter = WKBByteWriter();
writer.byteOrder = Int(CFByteOrderBigEndian.rawValue);
WKBGeometryWriter.writeGeometry(geometry, withWriter: writer);
let bytes: NSData = writer.getData();
writer.close();