如何设置 MKPlacemark 的显示名称?
Posted
技术标签:
【中文标题】如何设置 MKPlacemark 的显示名称?【英文标题】:How to set the display name for MKPlacemark? 【发布时间】:2017-04-20 11:35:41 【问题描述】:我正在尝试使用 Apple 的地图显示两个地方的路线。
对于这两个地方,名字和坐标我都有。
MKMapItem *currentLocation = [[MKMapItem alloc]
initWithPlacemark:[[MKPlacemark alloc]
initWithCoordinate:paramModel.fromCoordinate2D
addressDictionary:nil]];
MKMapItem *toLocation = [[MKMapItem alloc]
initWithPlacemark:[[MKPlacemark alloc]
initWithCoordinate:paramModel.toCoordinate2D
addressDictionary:nil]];
return [MKMapItem openMapsWithItems:@[ currentLocation, toLocation ]
launchOptions:@
MKLaunchOptionsDirectionsModeKey :
MKLaunchOptionsDirectionsModeDriving
];
名称存储在paramModel
中。
我认为这可以通过使用addressDictionary
来实现?我试过kABPersonAddressStreetKey
和kABPersonAddressCityKey
,但都不会出现在最终的路线视图中。
【问题讨论】:
【参考方案1】:发现我可以直接修改MKMapItem
的name
字段。
MKMapItem *currentLocation = [[MKMapItem alloc]
initWithPlacemark:[[MKPlacemark alloc]
initWithCoordinate:paramModel.fromCoordinate2D
addressDictionary:nil]];
currentLocation.name = paramModel.fromName;
【讨论】:
【参考方案2】:尝试将您的 MKPlacemark 创建为变量,然后像这样修改该变量上的标题字段:
MKPlacemark* placemark = [[MKPlacemark alloc]
initWithCoordinate:paramModel.fromCoordinate2D
addressDictionary:nil]];
placemark.title = @"Some Title";
placemark.subtitle = @"Some subtitle";
然后将变量设置为地图项构造函数中的参数。
【讨论】:
很抱歉,title
和 subtitle
字段似乎是 readonly
?以上是关于如何设置 MKPlacemark 的显示名称?的主要内容,如果未能解决你的问题,请参考以下文章