sjy-ecos/public/lib/bokeh/js/tree/models/tiles/tile_utils.js

45 lines
1.4 KiB
JavaScript

var ProjectionUtils, mercator, proj4, wgs84;
proj4 = require("proj4");
mercator = proj4.defs('GOOGLE');
wgs84 = proj4.defs('WGS84');
ProjectionUtils = (function() {
function ProjectionUtils() {
this.origin_shift = 2 * Math.PI * 6378137 / 2.0;
}
ProjectionUtils.prototype.geographic_to_meters = function(xLon, yLat) {
return proj4(wgs84, mercator, [xLon, yLat]);
};
ProjectionUtils.prototype.meters_to_geographic = function(mx, my) {
return proj4(mercator, wgs84, [mx, my]);
};
ProjectionUtils.prototype.geographic_extent_to_meters = function(extent) {
var ref, ref1, xmax, xmin, ymax, ymin;
xmin = extent[0], ymin = extent[1], xmax = extent[2], ymax = extent[3];
ref = this.geographic_to_meters(xmin, ymin), xmin = ref[0], ymin = ref[1];
ref1 = this.geographic_to_meters(xmax, ymax), xmax = ref1[0], ymax = ref1[1];
return [xmin, ymin, xmax, ymax];
};
ProjectionUtils.prototype.meters_extent_to_geographic = function(extent) {
var ref, ref1, xmax, xmin, ymax, ymin;
xmin = extent[0], ymin = extent[1], xmax = extent[2], ymax = extent[3];
ref = this.meters_to_geographic(xmin, ymin), xmin = ref[0], ymin = ref[1];
ref1 = this.meters_to_geographic(xmax, ymax), xmax = ref1[0], ymax = ref1[1];
return [xmin, ymin, xmax, ymax];
};
return ProjectionUtils;
})();
module.exports = {
ProjectionUtils: ProjectionUtils
};