我需要为一组 AGSGraphics(餐馆或已知地点)计算 mapScale 或缩放以在 map 中显示它们。 我在 google 和 stack-overflow 中搜索过,但没有找到任何解决方案。
我已将所有图形添加到 AGSGraphicOverlay,并且我能够在运行时在 map 中看到所有图形。但我想显示一些图形,以便每个图形都能适应屏幕边界。
我可以使用以下步骤在 map 中显示那几个图形。
=> 计算最小坐标和最大坐标并转换为AGSPoint
=> 使用这些最小和最大点创建了 AGSEnvelope
=> 使用该 AGSEnvelope 创建了 AGSViewPoint
=> 可以使用mapView?.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/