Skip to content

Commit

Permalink
earth radius: change leaflet and leaflet-draw to use the radius value…
Browse files Browse the repository at this point in the history
… used by the s2 geometry library

this library is used in the ingress backend, so distance calculation, etc are far closer if we use the value from that
  • Loading branch information
jonatkins committed Mar 12, 2015
1 parent 1dae89b commit 522ef34
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions external/L.Geodesic.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Modified by qnstie 2013-07-17 to maintain compatibility with Leaflet.draw
// to calculate intermediate points. hopeefully this will avoid the rounding issues seen in the full intermediate
// points code that have been seen
function geodesicConvertLine(startLatLng, endLatLng, convertedPoints) {
var R = 6378137; // earth radius in meters (doesn't have to be exact)
var R = 6367000.0; // earth radius in meters (doesn't have to be exact)
var d2r = Math.PI/180.0;
var r2d = 180.0/Math.PI;

Expand Down Expand Up @@ -179,7 +179,7 @@ Modified by qnstie 2013-07-17 to maintain compatibility with Leaflet.draw


_calcPoints: function() {
var R = 6378137; //earth radius in meters (approx - taken from leaflet source code)
var R = 6367000.0; //earth radius in meters (approx - taken from leaflet source code)
var d2r = Math.PI/180.0;
var r2d = 180.0/Math.PI;
//console.log("geodesicCircle: radius = "+this._mRadius+"m, centre "+this._latlng.lat+","+this._latlng.lng);
Expand Down
6 changes: 3 additions & 3 deletions external/leaflet-src.js
Original file line number Diff line number Diff line change
Expand Up @@ -1191,7 +1191,7 @@ L.LatLng.prototype = {
distanceTo: function (other) { // (LatLng) -> Number
other = L.latLng(other);

var R = 6378137, // earth radius in meters
var R = 6367000.0, // earth radius in meters
d2r = L.LatLng.DEG_TO_RAD,
dLat = (other.lat - this.lat) * d2r,
dLon = (other.lng - this.lng) * d2r,
Expand Down Expand Up @@ -1512,7 +1512,7 @@ L.CRS.EPSG3857 = L.extend({}, L.CRS, {

project: function (latlng) { // (LatLng) -> Point
var projectedPoint = this.projection.project(latlng),
earthRadius = 6378137;
earthRadius = 6367000.0;
return projectedPoint.multiplyBy(earthRadius);
}
});
Expand Down Expand Up @@ -8299,7 +8299,7 @@ L.Control.Scale = L.Control.extend({
_update: function () {
var bounds = this._map.getBounds(),
centerLat = bounds.getCenter().lat,
halfWorldMeters = 6378137 * Math.PI * Math.cos(centerLat * Math.PI / 180),
halfWorldMeters = 6367000.0 * Math.PI * Math.cos(centerLat * Math.PI / 180),
dist = halfWorldMeters * (bounds.getNorthEast().lng - bounds.getSouthWest().lng) / 180,

size = this._map.getSize(),
Expand Down
2 changes: 1 addition & 1 deletion external/leaflet.draw.js
Original file line number Diff line number Diff line change
Expand Up @@ -1602,7 +1602,7 @@ L.GeometryUtil = {
area += ((p2.lng - p1.lng) * d2r) *
(2 + Math.sin(p1.lat * d2r) + Math.sin(p2.lat * d2r));
}
area = area * 6378137.0 * 6378137.0 / 2.0;
area = area * 6367000.0 * 6367000.0 / 2.0;
}

return Math.abs(area);
Expand Down

0 comments on commit 522ef34

Please sign in to comment.