diff options
author | zmiao <miao.zhao@mapbox.com> | 2019-11-07 18:16:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-07 18:16:31 +0200 |
commit | 2e8a350d68be75d9505fab9dc897c4abbcae05aa (patch) | |
tree | e73bd5c629b3357326e663a8405c35c227b36ff2 /src | |
parent | 1d49c23b8558e8c24a51e7ba84525ddd06f231be (diff) | |
download | qtlocation-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')
-rw-r--r-- | src/mbgl/map/map.cpp | 18 |
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) { |