[ios, macos] Update callout when relocating annotation
When relocating a selected point annotation, update the associated callout (popover) rather than deselecting the annotation.
This commit is contained in:
committed by
Minh Nguyễn
parent
9ea4113634
commit
7e9701283f
@@ -2,7 +2,7 @@
|
||||
|
||||
Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started.
|
||||
|
||||
## master
|
||||
## 3.5.0
|
||||
|
||||
### Packaging
|
||||
|
||||
@@ -53,6 +53,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT
|
||||
### Other changes
|
||||
|
||||
* Fixed an issue that, among other things, caused various islands to disappear at certain zoom levels. ([#7621](https://github.com/mapbox/mapbox-gl-native/pull/7621))
|
||||
* Changing the coordinates of a point annotation no longer deselects the annotation. ([#8269](https://github.com/mapbox/mapbox-gl-native/pull/8269))
|
||||
* Fixed an issue where translucent, non-view-backed point annotations along tile boundaries would be drawn darker than expected. ([#6832](https://github.com/mapbox/mapbox-gl-native/pull/6832))
|
||||
* Fixed flickering that occurred when panning past the antimeridian. ([#7574](https://github.com/mapbox/mapbox-gl-native/pull/7574))
|
||||
* Fixed an issue that sometimes caused crashes when the SDK interacted with the file system in the background. ([#8125](https://github.com/mapbox/mapbox-gl-native/pull/8125))
|
||||
|
||||
@@ -1986,10 +1986,7 @@ public:
|
||||
|
||||
// Update the annotation’s backing geometry to match the annotation model object. Any associated annotation view is also moved by side effect. However, -updateAnnotationViews disables the view’s animation actions, because it can’t distinguish between moves due to the viewport changing and moves due to the annotation’s coordinate changing.
|
||||
_mbglMap->updateAnnotation(annotationTag, mbgl::SymbolAnnotation { point, symbolName.UTF8String });
|
||||
if (annotationTag == _selectedAnnotationTag)
|
||||
{
|
||||
[self deselectAnnotation:annotation animated:YES];
|
||||
}
|
||||
[self updateCalloutView];
|
||||
}
|
||||
}
|
||||
else if ([keyPath isEqualToString:@"coordinates"] && [object isKindOfClass:[MGLMultiPoint class]])
|
||||
@@ -2006,13 +2003,7 @@ public:
|
||||
{
|
||||
// Update the annotation’s backing geometry to match the annotation model object.
|
||||
_mbglMap->updateAnnotation(annotationTag, [annotation annotationObjectWithDelegate:self]);
|
||||
|
||||
// We don't current support shape multipoint annotation selection, but let's make sure
|
||||
// deselection is handled just to avoid problems in the future.
|
||||
if (annotationTag == _selectedAnnotationTag)
|
||||
{
|
||||
[self deselectAnnotation:annotation animated:YES];
|
||||
}
|
||||
[self updateCalloutView];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Changelog for Mapbox macOS SDK
|
||||
|
||||
## master
|
||||
## 0.4.0
|
||||
|
||||
### Internationalization
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
|
||||
* Added support for the Carthage dependency manager. See [this SDK’s homepage](https://mapbox.github.io/mapbox-gl-native/macos/) for setup instructions. ([#8257](https://github.com/mapbox/mapbox-gl-native/pull/8257))
|
||||
* Fixed an issue that, among other things, caused various islands to disappear at certain zoom levels. ([#7621](https://github.com/mapbox/mapbox-gl-native/pull/7621))
|
||||
* Changing the coordinates of a point annotation no longer deselects the annotation. ([#8269](https://github.com/mapbox/mapbox-gl-native/pull/8269))
|
||||
* Fixed an issue where translucent point annotations along tile boundaries would be drawn darker than expected. ([#6832](https://github.com/mapbox/mapbox-gl-native/pull/6832))
|
||||
* Fixed flickering that occurred when panning past the antimeridian. ([#7574](https://github.com/mapbox/mapbox-gl-native/pull/7574))
|
||||
* Added a `MGLDistanceFormatter` class for formatting geographic distances. ([#7888](https://github.com/mapbox/mapbox-gl-native/pull/7888))
|
||||
|
||||
@@ -538,9 +538,7 @@ public:
|
||||
const mbgl::Point<double> point = MGLPointFromLocationCoordinate2D(annotation.coordinate);
|
||||
MGLAnnotationImage *annotationImage = [self imageOfAnnotationWithTag:annotationTag];
|
||||
_mbglMap->updateAnnotation(annotationTag, mbgl::SymbolAnnotation { point, annotationImage.styleIconIdentifier.UTF8String ?: "" });
|
||||
if (annotationTag == _selectedAnnotationTag) {
|
||||
[self deselectAnnotation:annotation];
|
||||
}
|
||||
[self updateAnnotationCallouts];
|
||||
}
|
||||
} else if ([keyPath isEqualToString:@"coordinates"] &&
|
||||
[object isKindOfClass:[MGLMultiPoint class]]) {
|
||||
@@ -554,12 +552,7 @@ public:
|
||||
// but safely updated.
|
||||
if (annotation == [self annotationWithTag:annotationTag]) {
|
||||
_mbglMap->updateAnnotation(annotationTag, [annotation annotationObjectWithDelegate:self]);
|
||||
// We don't current support shape multipoint annotation selection, but let's make sure
|
||||
// deselection is handled just to avoid problems in the future.
|
||||
if (annotationTag == _selectedAnnotationTag)
|
||||
{
|
||||
[self deselectAnnotation:annotation];
|
||||
}
|
||||
[self updateAnnotationCallouts];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user