【问题标题】:MapKit: How Can I Transfer the Exact Same Projection to a New Instance With A Slightly Different Shape?MapKit:如何将完全相同的投影转移到形状略有不同的新实例上?
【发布时间】:2012-06-07 04:05:55
【问题描述】:

好的,这是交易:

我有两种观点:简单和高级。在 iPad 上,它们带有一个大地图视图,带有一个可以移动以指示位置的标记。

每个视图都有一个不同的 MkMapView 实例。当我从一个切换到另一个时,我想让地图保持完全相同的位置和缩放级别,让用户感觉就像是同一张地图。

但是,每个视图的地图视图形状略有不同。这是因为高级搜索在地图上方有更多内容。

当我打开地图时(这是来自抽象超类的代码,所以两个实例都得到它),我设置区域和标记位置,如下所示:

[mapSearchView setRegion:[mapSearchView regionThatFits:[[BMLTAppDelegate getBMLTAppDelegate] searchMapRegion]]];
[myMarker setCoordinate:[[BMLTAppDelegate getBMLTAppDelegate] searchMapMarkerLoc]];

searchMapRegion 和 searchMapMarkerLoc 是静态的,反映当前显示的地图区域和标记位置(地图中心)。

问题来了:

因为地图的形状略有不同,所以总会有一些调整。这可以来回“弹跳”,因此每次切换时地图缩放都会不断减小,直到您看到整个世界。

我是否使用 regionThatFits 并不重要。即使使用此代码,也会发生同样的事情:

[mapSearchView setRegion:[[BMLTAppDelegate getBMLTAppDelegate] searchMapRegion]];
[myMarker setCoordinate:[[BMLTAppDelegate getBMLTAppDelegate] searchMapMarkerLoc]];

我想要的只是显示完全相同的缩放和中心。我不在乎高级视图是否被切断了一点。

我如何获得 $#@!! MapKit 停止调整缩放系数?

【问题讨论】:

    标签: iphone ipad mapkit zooming region


    【解决方案1】:

    仅供参考。我通过创建一个自定义模型层类来解决这个问题,该类维护比例和中心点,并被多个 MKMapViews 使用。它工作得很好,但 MapKit 有时会稍微调整比例以适应它的“定位”之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-28
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      相关资源
      最近更新 更多