Obj-C - Google Maps SDK 获取所选标记的数据?
Posted
技术标签:
【中文标题】Obj-C - Google Maps SDK 获取所选标记的数据?【英文标题】:Obj-C - Google Maps SDK get data for selected marker? 【发布时间】:2021-06-11 13:40:04 【问题描述】:我正在尝试使用以下代码获取选定标记的数据:
-(void)viewDidLoad
NSMutableDictionary *viewParams3 = [NSMutableDictionary new];
[viewParams3 setValue:@"breweries" forKey:@"view_name"];
[DiosView viewGet:viewParams3 success:^(AFHTTPRequestOperation *operation, id responseObject)
self.breweryLocations = [responseObject mutableCopy];
int index = 0;
for (NSMutableDictionary *brewInfo in self.breweryLocations)
NSString *location = brewInfo[@"address"];
NSString *userNames = brewInfo[@"node_title"];
NSString *firstRemoved = [userNames stringByReplacingOccurrencesOfString:@"'" withString:@""];
NSString *userBio = brewInfo[@"body"];
CLGeocoder *geocoderFriend = [[CLGeocoder alloc] init];
[geocoderFriend geocodeAddressString:location
completionHandler:^(NSArray* placemarks, NSError* error)
if (placemarks && placemarks.count > 0)
CLPlacemark *topResult = [placemarks objectAtIndex:0];
MKPlacemark *placemark = [[MKPlacemark alloc] initWithPlacemark:topResult];
CLLocationCoordinate2D position = placemark.coordinate;
GMSMarker *marker = [GMSMarker markerWithPosition:position];
marker.title = firstRemoved;
marker.icon = [UIImage imageNamed:@"brewIconMax"];
marker.map = self.mapView;
marker.userData = self.breweryLocations;
marker.map.selectedMarker.zIndex = index + 1;
];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Failure: %@", [error localizedDescription]);
];
- (BOOL) mapView: (GMSMapView *)mapView didTapMarker:(GMSMarker *)marker
self.venueCategory.text = marker.userData[mapView.selectedMarker.zIndex][@"type"];
也就是说,这行代码
self.venueCategory.text = marker.userData[mapView.selectedMarker.zIndex][@"type"];
无论我点击哪个标记,都从数组中的第一个字典返回数据(zIndex 始终返回为 0)。我似乎无法在任何地方找到正确的代码来获取所选标记的数组数据。
知道那条线应该是什么样子吗?
【问题讨论】:
【参考方案1】:我不清楚“类型”是否是啤酒厂位置字典的一个元素,所以我在这里进行一些猜测。
我建议将marker.userData
设置为brewInfo
字典,而不是整个breweryLocations
数组。
marker.userData = brewInfo;
然后从brewInfo
字典中获取“类型”。
self.venueCategory.text = marker.userData[@"type"];
【讨论】:
啊,这成功了 - 非常感谢!! 我怎么能不帮忙拍可爱的狗照片 ;-) 大声笑!很高兴在我的照片中加入我的狗正在吸引大众回答我的问题,哈哈。谢谢一百万:)以上是关于Obj-C - Google Maps SDK 获取所选标记的数据?的主要内容,如果未能解决你的问题,请参考以下文章
NativeScript:@nativescript/geolocation 与 nativescript-google-maps-sdk
com.google.android.gms:play-services-maps 的最佳 sdk 版本是啥?