serializeData: function(){ let modelJSON = this.model.toJSON(); let viewData = { target: modelJSON.target, lat: modelJSON.mouseLat, lon: modelJSON.mouseLon }; switch(getCoordinateFormat()){ case 'degrees': viewData.lat = mtgeo.toLat(viewData.lat); viewData.lon = mtgeo.toLon(viewData.lon); break; case 'decimal': break; } return viewData; }
updateClickCoordinates: function() { const lat = this.get('mouseLat') const lon = this.get('mouseLon') const dms = `${mtgeo.toLat(lat)} ${mtgeo.toLon(lon)}` // TODO: Move leaking defensive check knowledge to usng library (DDF-4335) const mgrs = lat > 84 || lat < -80 ? undefined : converter.LLtoUSNG(lat, lon, usngPrecision) const utmUps = converter.LLtoUTMUPS(lat, lon) this.set({ clickLat: lat, clickLon: lon, clickDms: dms, clickMgrs: mgrs, clickUtmUps: utmUps, }) },
serializeData: function() { let modelJSON = this.model.toJSON() let viewData = { target: modelJSON.target, lat: modelJSON.mouseLat, lon: modelJSON.mouseLon, } switch (getCoordinateFormat()) { case 'degrees': viewData.lat = typeof viewData.lat === 'undefined' ? viewData.lat : mtgeo.toLat(viewData.lat) viewData.lon = typeof viewData.lon === 'undefined' ? viewData.lon : mtgeo.toLon(viewData.lon) break case 'decimal': viewData.lat = typeof viewData.lat === 'undefined' ? viewData.lat : `${leftPad(Math.floor(viewData.lat), 3, ' ')}.${Math.abs( viewData.lat % 1 ) .toFixed(6) .toString() .slice(2)}` viewData.lon = typeof viewData.lon === 'undefined' ? viewData.lon : `${leftPad(Math.floor(viewData.lon), 4, ' ')}.${Math.abs( viewData.lon % 1 ) .toFixed(6) .toString() .slice(2)}` break } return viewData },
clearMouseCoordinates() { this.set({ mouseLat: undefined, mouseLon: undefined, }) }, updateMouseCoordinates(coordinates) { this.set({ mouseLat: Number(coordinates.lat.toFixed(6)), // wrap in Number to chop off trailing zero mouseLon: Number(wrapNum(coordinates.lon, -180, 180).toFixed(6)), }) }, updateClickCoordinates() { const lat = this.get('mouseLat') const lon = this.get('mouseLon') const dms = `${mtgeo.toLat(lat)} ${mtgeo.toLon(lon)}` const mgrs = converter.isInUPSSpace(lat) ? undefined : converter.LLtoUSNG(lat, lon, usngPrecision) const utmUps = converter.LLtoUTMUPS(lat, lon) this.set({ coordinateValues: { lat, lon, dms, mgrs, utmUps, }, }) }, })
* <http://www.gnu.org/licenses/lgpl.html>. * **/ /*global require*/ var Marionette = require('marionette') var template = require('./map-settings.hbs') var CustomElements = require('js/CustomElements') var Property = require('component/property/property') var PropertyView = require('component/property/property.view') var user = require('component/singletons/user-instance') var mtgeo = require('mt-geo') var Common = require('js/Common') var exampleLat = '14.94' var exampleLon = '-11.875' var exampleDegrees = mtgeo.toLat(exampleLat) + ' ' + mtgeo.toLon(exampleLon) var exampleDecimal = exampleLat + ' ' + exampleLon module.exports = Marionette.LayoutView.extend({ template: template, tagName: CustomElements.register('map-settings'), modelEvents: {}, events: {}, regions: { coordinateFormat: '> .property-coordinate-format', coordinateFormatExample: '> .property-coordinate-example', }, ui: {}, initialize: function() { this.listenTo( user.get('user').get('preferences'),