问题标签 [mkcoordinatespan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
12926 浏览

ios - 尝试获取 iOS MKCoordinateSpan 的跨度大小(以米为单位)

当我需要制作时MKCoordinateRegion,我会执行以下操作:

非常简单 - 完美运行。

现在我希望存储当前区域span的值。当我查看该region.Span值时,它MKCoordinateSpan具有两个属性:

如何将LatitudeDelta值转换为latitudinalMeters请?(所以我可以使用上述方法重新创建我的区域(稍后)......

0 投票
1 回答
825 浏览

ios - 超过 180 度时找到两个 CLLocationCoordinate2D 之间的中点

我有以下代码来计算 MKCoordinateRegion 以显示包含两个定义点的地图。问题是当经度超过 180 或 -180 度时它不起作用。

任何想法我可以如何更改此代码以确保它可以处理 startLong 为正即 174 和 nextLong 为负即 -127,反之亦然

0 投票
1 回答
444 浏览

swift - mapkit:适合的区域无法正确渲染

我有一段代码可以确定最佳region.span.latitudeDeltaregion.span.longitudeDelta. 它找到左上角和右下角,并获取纬度坐标和长坐标之间的差异。

我遇到的问题是渲染实际上与我在执行时设置的不同:

例如,如果我首先选择要渲染的项目(比如说从表格中),然后切换到地图,我会得到不同的结果(视觉上),而不是在地图上显示所有然后选择我想要的保持。

更重要的是,如果我渲染地图上的所有点,然后选择一些点并渲染选中,然后删除过滤器并渲染所有点,地图与我开始时的不同 - 它显示了所有点,但它更小(看起来缩小了)与初始视图相比。

在调试时,我可以看到这两种情况都生成了相同的跨度值,但渲染就好像忽略了它们。从调试使用(在英国的选定点):

  1. 加载所有点:

    region.span.latitudeDelta 7.439768

    region.span.longitudeDelta 11.0

  2. 过滤点:

    region.span.latitudeDelta 1.25

    region.span.longitudeDelta 10.50477

  3. 删除过滤器:

    region.span.latitudeDelta 7.439768

    region.span.longitudeDelta 11.0

在重新渲染之前(而不是仅仅在 viewDidLoad 上),我尝试将地图重新​​居中在一个固定坐标上,但这没有任何区别。

我想强调的是,每次运行上述序列时,地图都不会一直缩小。它有点缩小一次,就是这样。

我缺少一个明显的步骤吗?我需要设置的隐藏布尔值?还有什么?

我也尝试从 regionThatFits 更改为

我也尝试了以下方法:

无论我做什么,如果我已经在地图上应用注释过滤器,它看起来好像实际跨度增加/加倍(或者好像地图边缘周围有一个强制框架)使地图看起来好像它尽管调试输出以其他方式显示,但仍被缩小...

下面是来自不同场景的两张图片。任何建议将不胜感激。

谢谢!

  1. 图 1 - 我在表格中时应用了过滤器,然后导航到地图: 在此处输入图像描述

  2. 图 2 - 导航到地图,然后应用过滤器: 在此处输入图像描述