我得到MKLocalSearch
的结果,其中包含类似......
{
address = {
formattedAddressLine = (
"Marton Road",
Middlesbrough,
TS1,
England
);
structuredAddress = {
administrativeArea = England;
areaOfInterest = (
"Great Britain"
);
country = "United Kingdom";
countryCode = GB;
fullThoroughfare = "Marton Road";
geoId = (
);
locality = Middlesbrough;
postCode = TS1;
subAdministrativeArea = Middlesbrough;
thoroughfare = "Marton Road";
};
};
addressGeocodeAccuracy = 0;
business = (
{
UID = 9301704419119613323;
URL = "http://www.cineworld.co.uk";
attribution = (
{
attributionURLs = (
"yelp5.3:///biz/cineworld-middlesbrough",
"yelp4:///biz/cineworld-middlesbrough",
"yelp:///biz/cineworld-middlesbrough",
"http://yelp.com/biz/cineworld-middlesbrough"
);
sourceIdentifier = "com.yelp";
sourceVersion = 1;
}
);
canBeCorrectedByBusinessOwner = 1;
name = Cineworld;
source = (
{
"source_id" = "b2LOPag6ha6845__dgXehw";
"source_name" = yelp;
},
{
"source_id" = 6670;
"source_name" = tribune;
},
{
"source_id" = 2000000103009680;
"source_name" = "acxiom_intl";
},
{
"source_id" = "cineworld-middlesbrough";
"source_name" = "yelp_alias";
}
);
"star_rating" = (
0
);
telephone = "+448712002000";
}
);
center = {
lat = "54.57633773904653";
lng = "-1.228197113614671";
};
inputLanguage = en;
localSearchProviderID = 9902;
mapRegion = {
eastLng = "-1.224891596539819";
northLat = "54.57545000290778";
southLat = "54.5738619816233";
westLng = "-1.227631256834202";
};
name = Cineworld;
type = 57;
}
现在我将它添加到我的地图中......
id <MKAnnotation> annotation = mapItem.placemark;
[self.mapView addAnnotation:annotation];
它添加了一个引脚,当我点击它时显示&#34; Marton Road&#34;但我希望能够展示&#34; Cineworld&#34;。
我发现很难找到有关从MKMapItem
和MKPlacemark
获取内容的任何信息。
如果我尝试在地方标记中使用mapItem.name
,那么他们都会显示&#34;美国&#34;。
知道如何从中获取更多有用的信息吗?
答案 0 :(得分:2)
MKPlacemark
返回其title
媒体资源的地址,MKPlacemark
课程不允许您自己设置title
。
您可以做的是创建MKPointAnnotation
(具有可设置的title
属性)并将其title
设置为您想要的任何内容mapItem.name
。
例如:
MKPointAnnotation *pa = [[MKPointAnnotation alloc] init];
pa.title = mapItem.name;
pa.coordinate = mapItem.placemark.coordinate;
[self.mapView addAnnotation:pa];
注意:强>
您不必使用MKPointAnnotation
课程(它是最方便的课程)。
您还可以使用符合MKAnnotation
并且具有可设置title
属性的自定义类(或某些返回MKMapItem
&#39; s name
的类作为其title
)。
另请注意,如果您希望能够访问事后添加的注释中的相关MKMapItem
或MKPlacemark
(例如,在地图视图委托方法中),您可以# 39; ll需要使用自定义类而不是MKPointAnnotation
来添加&#34; sourceMapItem&#34;或&#34; sourcePlacemark&#34;您可以在创建注释时设置的属性。
这样,您可以根据需要设置title
,但仍然可以访问创建注释对象的所有原始MKMapItem
或MKPlacemark
值(您无法执行此操作)如果您只使用MKPointAnnotation
,则可以轻松实现这一点,因为它不会保留对源地图项或地标的引用。