我在iOS应用中使用谷歌地图SDK。我在绘制地图上的多个引脚时遇到困难。这就是我试图绘制引脚的方式。我使用完全相同的方法使用MapKit显示多个引脚工作正常但谷歌地图没有成功。
-(void)plotMembersOnMap
{
for (NSMutableDictionary *obj in self.jsonDictionary)
{
membersDict = [obj objectForKey:@"members"];
NSLog(@"Count member %d",[membersDict count]); // shows count
for (NSDictionary *obj in membersDict)
{
CLLocationCoordinate2D center;
NSString *latitudeString = [obj objectForKey:@"lat"];
NSString *longitudeString = [obj objectForKey:@"lng"];
double latitude = [latitudeString doubleValue];
double longitude = [longitudeString doubleValue];
center.latitude =latitude;
center.longitude = longitude;
NSString *userName = [obj objectForKey:@"pseudo"];
GMSMarker *marker = [[GMSMarker alloc] init];
marker.map = mapView_;
marker.position = CLLocationCoordinate2DMake(center.latitude, center.longitude);
customGoogleCallout.callOutTitleLabel.text = @"Member";
customGoogleCallout.callOutUserName.text = userName;
marker.icon = [UIImage imageNamed:@"marker_membre.png"];
}
}
}
答案 0 :(得分:1)
尝试将lat和lon添加到数组然后提供marker.position 有一些循环的i和位置是索引[i]的对象。
答案 1 :(得分:1)
这可能会有所帮助......
CLLocationCoordinate2D center = { [[obj objectForKey:@"lat"] floatValue] , [[obj objectForKey:@"lon"] floatValue] };
GMSMarker *marker = [GMSMarker markerWithPosition:center];
答案 2 :(得分:0)
试试这个,
NSArray *latitudeString = [obj objectForKey:@"lat"];
NSArray *longitudeString = [obj objectForKey:@"lng"];
而不是
NSString *latitudeString = [obj objectForKey:@"lat"];
NSString *longitudeString = [obj objectForKey:@"lng"];
答案 3 :(得分:0)
可能是因为它正在绘制您分配给center
的最新坐标。您应该创建新实例,以便不会替换先前的值。