gpt4 book ai didi

iOS Google Maps SDK 替换标记图标

转载 作者:行者123 更新时间:2023-11-29 12:51:09 25 4
gpt4 key购买 nike

我有一个项目,我需要根据我们获得的位置数组在 map 上显示一些标记。我们使用的是自定义标记针,而不是默认的。一个要求是,如果我们放大超过某个缩放阈值,我们需要为标记显示更大的图标。所以我们有一个小图钉图像和一个大图钉图像。基于缩放级别,我们需要显示更大或更小。我知道一种方法是清除所有标记并重新添加它们。但是,由于其他一些挑战,该解决方案对我们不起作用。我需要简单地替换标记图标图像。以下是我的代码:

-(void)updateMarkerImagePinSize {
NSLog(@"Update Marker Image called");
//[self.mapView clear];

UIImage *pinImage;
AtmLocations *atmLocations = [ATMLocatorManager sharedATMLocatorManager].atmLocations;
CLLocationCoordinate2D searchedAddressCoordinate = CLLocationCoordinate2DMake(atmLocations.locations.startLatitude, atmLocations.locations.startLongitude);
[self addSearchLocationMarkerToMap:searchedAddressCoordinate];

NSArray *locationArray = atmLocations.locations.location;

if (locationArray == nil || [locationArray count] == 0){
return;
}

for (Location *location in locationArray) {

CLLocationCoordinate2D markerCoordinate = CLLocationCoordinate2DMake([[[location attributes] latitude] doubleValue], [[[location attributes] longitude] doubleValue]);

GMSMarker *marker = [GMSMarker markerWithPosition:markerCoordinate];

if ([location.attributes.locationType isEqualToString:@"ATM"]) {


if (self.mapView.camera.zoom < kZoomThresoldForMarkerImageSizeChange) {
pinImage = [UIImage imageNamed:@"atm_pin_small"];
} else {
pinImage = [UIImage imageNamed:@"atm_pin"];
}
} else {

if (self.mapView.camera.zoom < kZoomThresoldForMarkerImageSizeChange) {
pinImage = [UIImage imageNamed:@"office_pin_small"];
} else {
pinImage = [UIImage imageNamed:@"office_pin"];
}

}


marker.map = nil;
marker.icon = pinImage;
marker.map = self.mapView;

}

但是,我面临的问题是标记图标图像仍然存在。如何替换标记图像而不显示两者?

最佳答案

其实,我想出了问题是什么:

GMSMarker *marker = [GMSMarker markerWithPosition:markerCoordinate];

我错过了 markerWithPosition 是一个构造函数,而不是简单地返回该位置的标记(如果存在)。结果,它每次都在创建新的标记。通过创建标记的 NSMutableArray 并管理该数组来解决它

关于iOS Google Maps SDK 替换标记图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395241/

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