summaryrefslogtreecommitdiff
path: root/src/mbgl/map
diff options
context:
space:
mode:
authorzmiao <miao.zhao@mapbox.com>2019-11-07 18:16:31 +0200
committerGitHub <noreply@github.com>2019-11-07 18:16:31 +0200
commit2e8a350d68be75d9505fab9dc897c4abbcae05aa (patch)
treee73bd5c629b3357326e663a8405c35c227b36ff2 /src/mbgl/map
parent1d49c23b8558e8c24a51e7ba84525ddd06f231be (diff)
downloadqtlocation-mapboxgl-2e8a350d68be75d9505fab9dc897c4abbcae05aa.tar.gz
[core] Add batch conversion of latLngs to/from screenCoords (#15891)
* [core] Add batch conversion of latLng vs screenCoord * [core] Take the simple approach
Diffstat (limited to 'src/mbgl/map')
-rw-r--r--src/mbgl/map/map.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 649e0e321e..3ea2fc43c6 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -364,6 +364,24 @@ LatLng Map::latLngForPixel(const ScreenCoordinate& pixel) const {
return impl->transform.screenCoordinateToLatLng(pixel);
}
+std::vector<ScreenCoordinate> Map::pixelsForLatLngs(const std::vector<LatLng>& latLngs) const {
+ std::vector<ScreenCoordinate> ret;
+ ret.reserve(latLngs.size());
+ for (const auto& latLng : latLngs) {
+ ret.emplace_back(pixelForLatLng(latLng));
+ }
+ return ret;
+}
+
+std::vector<LatLng> Map::latLngsForPixels(const std::vector<ScreenCoordinate>& screenCoords) const {
+ std::vector<LatLng> ret;
+ ret.reserve(screenCoords.size());
+ for (const auto& point : screenCoords) {
+ ret.emplace_back(latLngForPixel(point));
+ }
+ return ret;
+}
+
#pragma mark - Annotations
void Map::addAnnotationImage(std::unique_ptr<style::Image> image) {