summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mbgl/map/map.hpp4
-rw-r--r--include/mbgl/util/geo.hpp14
-rw-r--r--include/mbgl/util/projection.hpp20
3 files changed, 20 insertions, 18 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp
index ea4073f4bf..823fcd4f21 100644
--- a/include/mbgl/map/map.hpp
+++ b/include/mbgl/map/map.hpp
@@ -135,8 +135,8 @@ public:
uint16_t getHeight() const;
// Projection
- void getWorldBoundsMeters(ProjectedMeters& sw, ProjectedMeters& ne) const;
- void getWorldBoundsLatLng(LatLng& sw, LatLng& ne) const;
+ MetersBounds getWorldBoundsMeters() const;
+ LatLngBounds getWorldBoundsLatLng() const;
double getMetersPerPixelAtLatitude(double lat, double zoom) const;
ProjectedMeters projectedMetersForLatLng(const LatLng&) const;
diff --git a/include/mbgl/util/geo.hpp b/include/mbgl/util/geo.hpp
index 7e2ad998b9..dd2b1567fc 100644
--- a/include/mbgl/util/geo.hpp
+++ b/include/mbgl/util/geo.hpp
@@ -54,7 +54,7 @@ struct LatLngBounds {
LatLng sw = {90, 180};
LatLng ne = {-90, -180};
- inline LatLngBounds(LatLng sw_ = {90, 180}, LatLng ne_ = {-90, -180})
+ inline LatLngBounds(const LatLng& sw_ = {90, 180}, const LatLng& ne_ = {-90, -180})
: sw(sw_), ne(ne_) {}
inline bool isValid() const {
@@ -91,6 +91,18 @@ struct LatLngBounds {
}
};
+struct MetersBounds {
+ ProjectedMeters sw;
+ ProjectedMeters ne;
+
+ inline MetersBounds(const ProjectedMeters& sw_, const ProjectedMeters& ne_)
+ : sw(sw_), ne(ne_) {}
+
+ inline bool isValid() const {
+ return sw.isValid() && ne.isValid();
+ }
+};
+
}
#endif
diff --git a/include/mbgl/util/projection.hpp b/include/mbgl/util/projection.hpp
index 9563900851..391e37dd34 100644
--- a/include/mbgl/util/projection.hpp
+++ b/include/mbgl/util/projection.hpp
@@ -11,24 +11,14 @@ namespace mbgl {
class Projection {
public:
- static inline void getWorldBoundsMeters(ProjectedMeters &sw, ProjectedMeters &ne) {
+ static inline MetersBounds getWorldBoundsMeters() {
const double d = util::EARTH_RADIUS_M * M_PI;
-
- sw.easting = -d;
- sw.northing = -d;
-
- ne.easting = d;
- ne.northing = d;
+ return { { -d, -d }, { d, d } };
}
- static inline void getWorldBoundsLatLng(LatLng &sw, LatLng &ne) {
- ProjectedMeters projectedMetersSW = ProjectedMeters();
- ProjectedMeters projectedMetersNE = ProjectedMeters();
-
- getWorldBoundsMeters(projectedMetersSW, projectedMetersNE);
-
- sw = latLngForProjectedMeters(projectedMetersSW);
- ne = latLngForProjectedMeters(projectedMetersNE);
+ static inline LatLngBounds getWorldBoundsLatLng() {
+ MetersBounds bounds = getWorldBoundsMeters();
+ return { latLngForProjectedMeters(bounds.sw), latLngForProjectedMeters(bounds.ne) };
}
static inline double getMetersPerPixelAtLatitude(const double lat, const double zoom) {