[core] Restored shape annotation z-order
Shapes are once again always added to the top z-index. Fixes #5691.
This commit is contained in:
committed by
Minh Nguyễn
parent
da35ef9f49
commit
74fe96d261
@@ -4,6 +4,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CON
|
||||
|
||||
## master
|
||||
|
||||
* Fixed an issue causing overlapping polylines and polygons to be drawn in undefined z-order. Shapes are always drawn in the order they are added to the map, from the oldest on the bottom to the newest on the top. ([#5710](https://github.com/mapbox/mapbox-gl-native/pull/5710))
|
||||
* Added [quadkey](https://msdn.microsoft.com/en-us/library/bb259689.aspx) support and limited WMS support in raster tile URL templates. ([#5628](https://github.com/mapbox/mapbox-gl-native/pull/5628))
|
||||
|
||||
## 3.3.0
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
## master
|
||||
|
||||
* Right-clicking to open MGLMapView’s context menu no longer prevents the user from subsequently panning the map by clicking and dragging. ([#5593](https://github.com/mapbox/mapbox-gl-native/pull/5593))
|
||||
* Fixed an issue causing overlapping polylines and polygons to be drawn in undefined z-order. Shapes are always drawn in the order they are added to the map, from the oldest on the bottom to the newest on the top. ([#5710](https://github.com/mapbox/mapbox-gl-native/pull/5710))
|
||||
* Replaced the wireframe debug mask with an overdraw visualization debug mask to match Mapbox GL JS’s overdraw inspector. ([#5403](https://github.com/mapbox/mapbox-gl-native/pull/5403))
|
||||
* Improved the design of the generated API documentation. ([#5306](https://github.com/mapbox/mapbox-gl-native/pull/5306))
|
||||
* Added [quadkey](https://msdn.microsoft.com/en-us/library/bb259689.aspx) support and limited WMS support in raster tile URL templates. ([#5628](https://github.com/mapbox/mapbox-gl-native/pull/5628))
|
||||
|
||||
@@ -67,8 +67,10 @@ private:
|
||||
AnnotationID nextID = 0;
|
||||
|
||||
using SymbolAnnotationTree = boost::geometry::index::rtree<std::shared_ptr<const SymbolAnnotationImpl>, boost::geometry::index::rstar<16, 4>>;
|
||||
using SymbolAnnotationMap = std::unordered_map<AnnotationID, std::shared_ptr<SymbolAnnotationImpl>>;
|
||||
using ShapeAnnotationMap = std::unordered_map<AnnotationID, std::unique_ptr<ShapeAnnotationImpl>>;
|
||||
// Unlike std::unordered_map, std::map is guaranteed to sort by AnnotationID, ensuring that older annotations are below newer annotations.
|
||||
// <https://github.com/mapbox/mapbox-gl-native/issues/5691>
|
||||
using SymbolAnnotationMap = std::map<AnnotationID, std::shared_ptr<SymbolAnnotationImpl>>;
|
||||
using ShapeAnnotationMap = std::map<AnnotationID, std::unique_ptr<ShapeAnnotationImpl>>;
|
||||
|
||||
SymbolAnnotationTree symbolTree;
|
||||
SymbolAnnotationMap symbolAnnotations;
|
||||
|
||||
@@ -79,6 +79,21 @@ TEST(Annotations, FillAnnotation) {
|
||||
test.checkRendering("fill_annotation_max_zoom");
|
||||
}
|
||||
|
||||
TEST(Annotations, OverlappingFillAnnotation) {
|
||||
AnnotationTest test;
|
||||
|
||||
Polygon<double> polygon = {{ {{ { 0, 0 }, { 0, 45 }, { 45, 45 }, { 45, 0 } }} }};
|
||||
FillAnnotation underlaidAnnotation { polygon };
|
||||
underlaidAnnotation.color = { { 0, 255, 0, 1 } };
|
||||
FillAnnotation overlaidAnnotation { polygon };
|
||||
overlaidAnnotation.color = { { 255, 0, 0, 1 } };
|
||||
|
||||
test.map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"));
|
||||
test.map.addAnnotation(underlaidAnnotation);
|
||||
test.map.addAnnotation(overlaidAnnotation);
|
||||
test.checkRendering("overlapping_fill_annotation");
|
||||
}
|
||||
|
||||
TEST(Annotations, StyleSourcedShapeAnnotation) {
|
||||
AnnotationTest test;
|
||||
|
||||
|
||||
BIN
test/fixtures/annotations/overlapping_fill_annotation/expected.png
vendored
Normal file
BIN
test/fixtures/annotations/overlapping_fill_annotation/expected.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Reference in New Issue
Block a user