gpt4 book ai didi

ios - 在 mapView 上显示比例尺

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:12:54 30 4
gpt4 key购买 nike

我想在 mapView 上显示比例尺。我找到了 this线程,我从中将以下代码添加到我的 mapViewController.m 中:

- (void)mapView:(MKMapView *)map regionDidChangeAnimated:(BOOL)animated {
MKCoordinateSpan span = mapView.region.span;
NSLog(@" 1 = ~111 km -> %f = ~ %f km ",span.latitudeDelta,span.latitudeDelta*111);

}

以上代码记录了从 map View 中显示的 map 区域顶部到底部的距离(以公里为单位),并在该距离发生变化时进行更新。下一个合乎逻辑的步骤是将该信息(来 self 的 NSLog)显示到 UILabel 中。我找到了 this仅此一点,但它对我不起作用。需要明确的是,当我尝试将该代码输入到我的 viewDidLoad 或我上面提到的 regionDidChangeAnimated 方法时,我收到一条错误消息,指出“字符串”未定义。我也尝试了解释的方法 here ,我得到了相同的结果(加上一些说“%”是意外的)。

我想知道的是如何在 UILabel 中显示我的 NSLog 输出。一旦我弄清楚了,我计划在屏幕的一侧添加一个一英寸长的条(只是一英寸长的线条的图片)并将 NSLog 输出除以从顶部到顶部的英寸数 map View 的底部。然后我将在该行旁边的 UILabel 中显示公里数,这样它看起来与传统 map 上的比例尺相似。我还必须编辑 UILabel 以仅显示公里数,因为 NSLog 也会写出很多上下文信息(例如,“2013-07-11 15:02:20.775 Controller 2.0[1076:907] 1 = ~111 公里 -> 15.994178 = ~ 1775.353763 公里“)。

Controller 2.0 是我的应用程序的名称(以避免与 NSLog 混淆)

谢谢!

编辑- 根据 KHansenSF 的建议,我尝试添加一个字符串。没有改变。这是我所做的:在.h 的@interface 中,我写了

IBOutlet UILabel *scaleLabel;
NSString *latDistance;

然后在 } 之后我写道:

@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@property (nonatomic, retain) IBOutlet UILabel *scaleLabel;
@property (nonatomic, retain) NSString *latDistance;
- (IBAction) getLatDistance;

然后在.m里面我综合了所有的东西然后写了

scaleLabel.text = latDistance;

在 viewDidLoad 和

- (IBAction) getLatDistance
{
MKCoordinateSpan span = mapView.region.span;
NSString *latDistance = [NSString stringWithFormat:@" 1 = ~111 km -> %f = ~ %f km ",span.latitudeDelta,span.latitudeDelta*111];
}

在 viewDidLoad 之后。没有改变。我一定是错误地声明了某些东西或错误地传递了信息,但无论如何我都受阻了。任何输入表示赞赏。

注意 - 我刚刚找到 this用于向 GitHub 上的 MapView 添加比例的扩展,但该页面没有方向且自述文件为空。任何人都知道如何实现这个?或者,我找到了 this关于如何在 Android 上制作这种规模的线程。可能这样的文件可以移植到 iOS,例如使用这样的工具。我将对此进行进一步调查,但欢迎任何意见。谢谢!

编辑 - 现在我已经完成了,这是成品的屏幕截图。出于隐私目的,我在标题中模糊了 map 注释的内容和公司名称。效果很好!
enter image description here

最佳答案

试试这个:

- (void)mapView:(MKMapView *)map regionDidChangeAnimated:(BOOL)animated {

MKCoordinateSpan span = mapView.region.span;

NSString * scaleString = [NSString stringWithFormat:@" 1 = ~111 km -> %f = ~ %f km", span.latitudeDelta, span.latitudeDelta*111];

NSLog(@"%@", scaleString);
self.scaleLabel.text = scaleString;
}

关于ios - 在 mapView 上显示比例尺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17604986/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com