Tag: 地理

使用MapBox GL的iOS预打包的离线矢量地图

我终于找到了一种解决方案,可以为我的地理游戏的iOS版本提供离线矢量地图,这在哪里? 使用MapBox GL。 我想在这里向您展示解决方案。 但首先:我是iOS和Android地理游戏的开发者,下载量超过600万,但我仍将MBTiles栅格地图与旧版MapBox框架结合使用。 真可惜! 这种方法存在一系列问题,例如大文件大小和缺乏样式灵活性,从而给我的用户带来了不太吸引人的游戏体验。 现在是时候彻底改变这种情况了。 输入矢量图块:周围有很多矢量地图框架(例如WhirlyGlobe,Tangram-ES,Mapzen,Nutiteq),我花了一些时间对它们全部进行了全面测试。 但是它们都不符合我的所有要求: 带有小文件大小的预打包离线图块源 开源的 快速渲染 样式灵活 它们中的大多数在渲染矢量图块时均缺乏性能,从而导致丑陋的伪影。 我确实很喜欢WhirlyGlobe中的Globe选项。 最接近我的需求的软件包是MapBox GL 。 唯一缺少的是iOS的离线选项。 但是我找到了一个简单的方法来实现。 使用MapBox Studio Classic创建矢量地图源并将其导出为MBTiles。 使用mb-util将MBTiles文件转换为单个pbf文件。 压缩它。 将这些CocoaPods添加到您的Podfile中: MapBox-iOS-SDK,GCDWebServer,objective-zip 创建一个GCDWebServer实例,通过NSBundle中的一个zip文件提供PBF矢量地图文件。 使用指向您本地Web服务器的自定义样式json加载MGLMapView 。 瞧! 离线矢量地图具有灵活的样式,小的文件大小和令人难以置信的性能。 您可以在Github jaysquared / mapbox-gl-ios-offline-example上找到一个示例项目。 您可以下载我的地理游戏 在哪里? 在iTunes上 。 包括矢量图。

适用于iOS 10和Swift 4的Square Region Geofencing

监视圆形区域的替代区域 地理围栏,地理围栏,地理围栏……多么美丽的技术。 😊😊 一点定义: 地理围栏是现实世界地理区域的虚拟边界。 可以动态生成地理围栏-例如在点位置周围的半径中,也可以是一组预定义的边界(例如学校区域或邻里边界)。 是的,如果您还没有弄清楚的话,这个定义来自我的好友Wikipedia,他在解释事物方面做得很好。 (这是我的个人观点!😌) 现在让我们进入主题! iOS 10在地理围栏方面做得很好。 但这有一些限制,例如您可以监视的区域数量(限制为20个),区域的半径(不少于100米),并且只能使用一种形状进行监视:一个完美的圆形区域。 如果要监视40米以内的正方形区域会怎样? 好吧,这就是我遇到了一段时间的问题。 为了解决此问题,我必须制作自己的CocoaPods库“ SquareRegion”来解决此问题。 演示版 多位置监控 单一位置监控 SquareRegion如何 工作? 首先,在您的Podfile中添加SquareRegion。 pod’SquareRegion’ 说明: 导入SquareRegion。 设置委托。 将委托分配给视图控制器(自身)。 设置您的区域(正方形区域)的中心坐标。 声明您的正方形区域属性:regionWithCenter是区域的中心, sideLength是正方形的长度(以公里为单位,因此需要转换为米), 标识符是区域的唯一键。 使用方法addRegionToMonitor(region 🙂将区域添加到监视器。 添加核心位置的CLLocationManagerDelegate(作为扩展)。 开始使用新位置更新正方形区域。 使视图控制器符合RegionProtocol。 使用相关的委托方法进入或离开您的区域时,请做点很酷的事情! 如何在iOS上模拟地理位置 ? 好了,您可以从Appcoda阅读一个很好的相关教程。 SquareRegion是“核心位置”的圆形区域的替代方法。 它可让您在边长至少25米的小区域内观察所需的尽可能多的位置范围。 您也可以在Product Hunt上投票支持该项目! 👍🏾😊 您可以在此处找到豆荚仓库。 在我的社交媒体上添加并关注我! 领英 脸书 天使主义者