[ios, macos] Add selection support to MGLMultiPoint annotations. (#9984)
* [ios, macos] Add selection support to MGLMultiPoint annotations. * [ios, macos] Update changelogs.
This commit is contained in:
committed by
GitHub
parent
24fc48982a
commit
b7b8baef9d
@@ -629,6 +629,10 @@ std::vector<Feature> Renderer::Impl::queryRenderedFeatures(const ScreenLineStrin
|
||||
}
|
||||
}
|
||||
|
||||
return queryRenderedFeatures(geometry, options, layers);
|
||||
}
|
||||
|
||||
std::vector<Feature> Renderer::Impl::queryRenderedFeatures(const ScreenLineString& geometry, const RenderedQueryOptions& options, const std::vector<const RenderLayer*>& layers) const {
|
||||
std::unordered_set<std::string> sourceIDs;
|
||||
for (const RenderLayer* layer : layers) {
|
||||
sourceIDs.emplace(layer->baseImpl->source);
|
||||
@@ -663,6 +667,21 @@ std::vector<Feature> Renderer::Impl::queryRenderedFeatures(const ScreenLineStrin
|
||||
return result;
|
||||
}
|
||||
|
||||
std::vector<Feature> Renderer::Impl::queryShapeAnnotations(const ScreenLineString& geometry) const {
|
||||
std::vector<const RenderLayer*> shapeAnnotationLayers;
|
||||
RenderedQueryOptions options;
|
||||
for (const auto& layerImpl : *layerImpls) {
|
||||
if (std::mismatch(layerImpl->id.begin(), layerImpl->id.end(),
|
||||
AnnotationManager::ShapeLayerID.begin(), AnnotationManager::ShapeLayerID.end()).second == AnnotationManager::ShapeLayerID.end()) {
|
||||
if (const RenderLayer* layer = getRenderLayer(layerImpl->id)) {
|
||||
shapeAnnotationLayers.emplace_back(layer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return queryRenderedFeatures(geometry, options, shapeAnnotationLayers);
|
||||
}
|
||||
|
||||
std::vector<Feature> Renderer::Impl::querySourceFeatures(const std::string& sourceID, const SourceQueryOptions& options) const {
|
||||
const RenderSource* source = getRenderSource(sourceID);
|
||||
if (!source) return {};
|
||||
|
||||
Reference in New Issue
Block a user