Google에서 얻을 수있는 위치 배열을 기반으로지도에 마커를 표시해야하는 프로젝트가 있습니다. 우리는 기본값이 아닌 사용자 정의 마커 핀을 사용하고 있습니다. 한 가지 요구 사항은 특정 확대/축소 임계 값을 초과하여 확대하면 마커에 더 큰 아이콘을 표시해야한다는 것입니다. 그래서 우리는 작은 핀 이미지와 큰 핀 이미지를 가지고 있습니다. 확대/축소 수준에 따라 더 크게 또는 더 작게 표시해야합니다. 한 가지 방법은 모든 아이콘을 지우고 다시 추가하는 것입니다. 그러나 다른 도전 과제로 인해, 그 해결책은 우리를 위해 작동하지 않습니다. 간단히 마커 아이콘 이미지를 교체해야합니다.iOS Google지도 SDK 마커 아이콘 바꾸기
-(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;
}
가}
그러나, 내가 직면하고있어 문제가 마커 아이콘 이미지가 모두 남아 있다는 것입니다 : 다음은 내 코드입니다. 마커 이미지를 대체하고 둘 다 표시하지 않으려면 어떻게해야합니까? 나는 markerWithPosition 생성자이며이있는 경우 단순히 그 위치에 마커를 반환하지 놓친
GMSMarker *marker = [GMSMarker markerWithPosition:markerCoordinate];
: