ios - 如何使用 ArcGIS sdk for iOS 计算坐标数组的缩放或 mapScale

标签 ios swift arcgis esri

我需要为一组 AGSGraphics(餐馆或已知地点)计算 mapScale 或缩放以在 map 中显示它们。 我在 google 和 stack-overflow 中搜索过,但没有找到任何解决方案。

我已将所有图形添加到 AGSGraphicOverlay,并且我能够在运行时在 map 中看到所有图形。但我想显示一些图形,以便每个图形都能适应屏幕边界。

我可以使用以下步骤在 map 中显示那几个图形。

=> 计算最小坐标和最大坐标并转换为AGSPoint

=> 使用这些最小和最大点创建了 AGSEnvelope

=> 使用该 AGSEnvelope 创建了 AGSViewPoint

=> 可以使用ma​​pView?.setViewPoint(...)在 map 上显示

如果用户单击任何图形,我将在大小为 300x200 的 UIView 中显示该图形的所有详细信息。此 customView 是使用 AGSMapView.addSubView 方法添加到 map 中的。每 2 分钟我需要显示下一家餐厅或已知地点以及之前 checkin 的用户位置(用户可以是任意数字,因此我需要通过以餐厅为中心来显示所有这些位置)。

完成所有这些后我遇到了一个问题,即我无法使用 30 像素的填充完全显示我的 UIView,这将显示该餐厅的所有详细信息。要解决此问题,我需要计算缩放级别,然后我可以使用 AGSViewpoint(center: point, scale: mapScale)

的 API

任何人都可以给我任何链接或解释我如何实现它。

最佳答案

您需要使用“setViewPoint”。因为您应该采用几何包络并缩放该几何体。你应该给它一个填充信封。

self.mapView.setViewpointGeometry(polygoneGeometryEnvelope, padding: 75, completion: nil)

https://developers.arcgis.com/ios/latest/api-reference/interface_a_g_s_polyline.html

关于ios - 如何使用 ArcGIS sdk for iOS 计算坐标数组的缩放或 mapScale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51731392/

相关文章:

iphone - SBJSON 解析器内存泄漏

ios - 如何使用 GCDAsyncUdpSocket 通过 wifi 和蓝牙进行多播

ios - Core Data 自定义策略的选择器语法是什么?

android - CallOut 弹出窗口不会通过放大/缩小定位自身

读取/导入 .tpk 映射到 R 或 QGIS 并用作 shapefile

ios - UiViewController - 弹出不弹出

ios - 带有属性文本的 UIButton 不遵守 adjustsFontSizeToFitWidth

swift - 如何创建多个缓存的 UIColor

ios - "loadHTMLString"WKWebView 的高度宽度问题

Python - 从文件夹中读取所有文件(.shp、.dbf、.mxd 等)