(function() { var __moduleName = "js/common/geoHelpers"; var __moduleAddress = "http://projects.delimited.io/webgl-globes/js/common/geoHelpers.js";System.register([], function (_export) { 'use strict'; var geodecoder, pointInPolygon; _export('getPoint', getPoint); _export('getEventCenter', getEventCenter); _export('convertToXYZ', convertToXYZ); function getPoint(event) { // Get the vertices var a = this.geometry.vertices[event.face.a]; var b = this.geometry.vertices[event.face.b]; var c = this.geometry.vertices[event.face.c]; // Averge them together var point = { x: (a.x + b.x + c.x) / 3, y: (a.y + b.y + c.y) / 3, z: (a.z + b.z + c.z) / 3 }; return point; } function getEventCenter(event, radius) { radius = radius || 200; var point = getPoint.call(this, event); var latRads = Math.acos(point.y / radius); var lngRads = Math.atan2(point.z, point.x); var lat = (Math.PI / 2 - latRads) * (180 / Math.PI); var lng = (Math.PI - lngRads) * (180 / Math.PI); return [lat, lng - 180]; } function convertToXYZ(point, radius) { radius = radius || 200; var latRads = (90 - point[0]) * Math.PI / 180; var lngRads = (180 - point[1]) * Math.PI / 180; var x = radius * Math.sin(latRads) * Math.cos(lngRads); var y = radius * Math.cos(latRads); var z = radius * Math.sin(latRads) * Math.sin(lngRads); return { x: x, y: y, z: z }; } return { setters: [], execute: function () { geodecoder = function geodecoder(features) { var store = {}; for (var i = 0; i < features.length; i++) { store[features[i].id] = features[i]; } return { find: function find(id) { return store[id]; }, search: function search(lat, lng) { var match = false; var country = undefined, coords = undefined; for (var i = 0; i < features.length; i++) { country = features[i]; if (country.geometry.type === 'Polygon') { match = pointInPolygon(country.geometry.coordinates[0], [lng, lat]); if (match) { return { code: features[i].id, name: features[i].properties.name }; } } else if (country.geometry.type === 'MultiPolygon') { coords = country.geometry.coordinates; for (var j = 0; j < coords.length; j++) { match = pointInPolygon(coords[j][0], [lng, lat]); if (match) { return { code: features[i].id, name: features[i].properties.name }; } } } } return null; } }; }; _export('geodecoder', geodecoder); // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html pointInPolygon = function pointInPolygon(poly, point) { var x = point[0]; var y = point[1]; var inside = false, xi = undefined, xj = undefined, yi = undefined, yj = undefined, xk = undefined; for (var i = 0, j = poly.length - 1; i < poly.length; j = i++) { xi = poly[i][0]; yi = poly[i][1]; xj = poly[j][0]; yj = poly[j][1]; xk = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi; if (xk) { inside = !inside; } } return inside; }; } }; }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImh0dHA6Ly9wcm9qZWN0cy5kZWxpbWl0ZWQuaW8vd2ViZ2wtZ2xvYmVzL2pzL2NvbW1vbi9nZW9IZWxwZXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztNQTRDVyxVQUFVLEVBZ0RqQixjQUFjOztzQkEzRkYsUUFBUTs7NEJBaUJSLGNBQWM7OzBCQWFkLFlBQVk7O0FBOUJyQixXQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7OztBQUc5QixRQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLFFBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0MsUUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzs7O0FBRzdDLFFBQUksS0FBSyxHQUFHO0FBQ1YsT0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsR0FBSSxDQUFDO0FBQ3hCLE9BQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBLEdBQUksQ0FBQztBQUN4QixPQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxHQUFJLENBQUM7S0FDekIsQ0FBQzs7QUFFRixXQUFPLEtBQUssQ0FBQztHQUNkOztBQUVNLFdBQVMsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDNUMsVUFBTSxHQUFHLE1BQU0sSUFBSSxHQUFHLENBQUM7O0FBRXZCLFFBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDOztBQUV2QyxRQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFDMUMsUUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxRQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQSxJQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBLEFBQUMsQ0FBQztBQUNwRCxRQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFBLElBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUEsQUFBQyxDQUFDOztBQUVoRCxXQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztHQUN6Qjs7QUFFTSxXQUFTLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO0FBQzFDLFVBQU0sR0FBRyxNQUFNLElBQUksR0FBRyxDQUFDOztBQUV2QixRQUFJLE9BQU8sR0FBRyxDQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUMvQyxRQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsR0FBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQzs7QUFFL0MsUUFBSSxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2RCxRQUFJLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcs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QUUsRUFBRSxZQUFBO1lBQUUsRUFBRSxZQUFBO1lBQUUsRUFBRSxZQUFBO1lBQUUsRUFBRSxZQUFBLENBQUM7O0FBRXZDLGFBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7QUFDN0QsWUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQixZQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLFlBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEIsWUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFaEIsWUFBRSxHQUFHLEFBQUMsQUFBQyxFQUFFLEdBQUcsQ0FBQyxLQUFPLEVBQUUsR0FBRyxDQUFDLEFBQUMsSUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBLElBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQSxBQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQSxBQUFDLEdBQUcsRUFBRSxBQUFDLENBQUM7QUFDNUUsY0FBSSxFQUFFLEVBQUU7QUFDTCxrQkFBTSxHQUFHLENBQUMsTUFBTSxDQUFDO1dBQ25CO1NBQ0Y7O0FBRUQsZUFBTyxNQUFNLENBQUM7T0FDZiIsImZpbGUiOiJodHRwOi8vcHJvamVjdHMuZGVsaW1pdGVkLmlvL3dlYmdsLWdsb2Jlcy9qcy9jb21tb24vZ2VvSGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvaW50KGV2ZW50KSB7XG5cbiAgLy8gR2V0IHRoZSB2ZXJ0aWNlc1xuICBsZXQgYSA9IHRoaXMuZ2VvbWV0cnkudmVydGljZXNbZXZlbnQuZmFjZS5hXTtcbiAgbGV0IGIgPSB0aGlzLmdlb21ldHJ5LnZlcnRpY2VzW2V2ZW50LmZhY2UuYl07XG4gIGxldCBjID0gdGhpcy5nZW9tZXRyeS52ZXJ0aWNlc1tldmVudC5mYWNlLmNdO1xuXG4gIC8vIEF2ZXJnZSB0aGVtIHRvZ2V0aGVyXG4gIGxldCBwb2ludCA9IHtcbiAgICB4OiAoYS54ICsgYi54ICsgYy54KSAvIDMsXG4gICAgeTogKGEueSArIGIueSArIGMueSkgLyAzLFxuICAgIHo6IChhLnogKyBiLnogKyBjLnopIC8gM1xuICB9O1xuXG4gIHJldHVybiBwb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50Q2VudGVyKGV2ZW50LCByYWRpdXMpIHtcbiAgcmFkaXVzID0gcmFkaXVzIHx8IDIwMDtcblxuICB2YXIgcG9pbnQgPSBnZXRQb2ludC5jYWxsKHRoaXMsIGV2ZW50KTtcblxuICB2YXIgbGF0UmFkcyA9IE1hdGguYWNvcyhwb2ludC55IC8gcmFkaXVzKTtcbiAgdmFyIGxuZ1JhZHMgPSBNYXRoLmF0YW4yKHBvaW50LnosIHBvaW50LngpO1xuICB2YXIgbGF0ID0gKE1hdGguUEkgLyAyIC0gbGF0UmFkcykgKiAoMTgwIC8gTWF0aC5QSSk7XG4gIHZhciBsbmcgPSAoTWF0aC5QSSAtIGxuZ1JhZHMpICogKDE4MCAvIE1hdGguUEkpO1xuXG4gIHJldHVybiBbbGF0LCBsbmcgLSAxODBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRvWFlaKHBvaW50LCByYWRpdXMpIHtcbiAgcmFkaXVzID0gcmFkaXVzIHx8IDIwMDtcblxuICB2YXIgbGF0UmFkcyA9ICggOTAgLSBwb2ludFswXSkgKiBNYXRoLlBJIC8gMTgwO1xuICB2YXIgbG5nUmFkcyA9ICgxODAgLSBwb2ludFsxXSkgKiBNYXRoLlBJIC8gMTgwO1xuXG4gIHZhciB4ID0gcmFkaXVzICogTWF0aC5zaW4obGF0UmFkcykgKiBNYXRoLmNvcyhsbmdSYWRzKTtcbiAgdmFyIHkgPSByYWRpdXMgKiBNYXRoLmNvcyhsYXRSYWRzKTtcbiAgdmFyIHogPSByYWRpdXMgKiBNYXRoLnNpbihsYXRSYWRzKSAqIE1hdGguc2luKGxuZ1JhZHMpO1xuXG4gIHJldHVybiB7eDogeCwgeTogeSwgejogen07XG59XG5cbmV4cG9ydCB2YXIgZ2VvZGVjb2RlciA9IGZ1bmN0aW9uIChmZWF0dXJlcykge1xuXG4gIGxldCBzdG9yZSA9IHt9O1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZmVhdHVyZXMubGVuZ3RoOyBpKyspIHtcbiAgICBzdG9yZVtmZWF0dXJlc1tpXS5pZF0gPSBmZWF0dXJlc1tpXTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmluZDogZnVuY3Rpb24gKGlkKSB7XG4gICAgICByZXR1cm4gc3RvcmVbaWRdO1xuICAgIH0sXG4gICAgc2VhcmNoOiBmdW5jdGlvbiAobGF0LCBsbmcpIHtcblxuICAgICAgbGV0IG1hdGNoID0gZmFsc2U7XG5cbiAgICAgIGxldCBjb3VudHJ5LCBjb29yZHM7XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmVhdHVyZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY291bnRyeSA9IGZlYXR1cmVzW2ldO1xuICAgICAgICBpZihjb3VudHJ5Lmdlb21ldHJ5LnR5cGUgPT09ICdQb2x5Z29uJykge1xuICAgICAgICAgIG1hdGNoID0gcG9pbnRJblBvbHlnb24oY291bnRyeS5nZW9tZXRyeS5jb29yZGluYXRlc1swXSwgW2xuZywgbGF0XSk7XG4gICAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBjb2RlOiBmZWF0dXJlc1tpXS5pZCxcbiAgICAgICAgICAgICAgbmFtZTogZmVhdHVyZXNbaV0ucHJvcGVydGllcy5uYW1lXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjb3VudHJ5Lmdlb21ldHJ5LnR5cGUgPT09ICdNdWx0aVBvbHlnb24nKSB7XG4gICAgICAgICAgY29vcmRzID0gY291bnRyeS5nZW9tZXRyeS5jb29yZGluYXRlcztcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvb3Jkcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgbWF0Y2ggPSBwb2ludEluUG9seWdvbihjb29yZHNbal1bMF0sIFtsbmcsIGxhdF0pO1xuICAgICAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29kZTogZmVhdHVyZXNbaV0uaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogZmVhdHVyZXNbaV0ucHJvcGVydGllcy5uYW1lXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfTtcbn07XG5cbi8vIGh0dHA6Ly93d3cuZWNzZS5ycGkuZWR1L0hvbWVwYWdlcy93cmYvUmVzZWFyY2gvU2hvcnRfTm90ZXMvcG5wb2x5Lmh0bWxcbnZhciBwb2ludEluUG9seWdvbiA9IGZ1bmN0aW9uKHBvbHksIHBvaW50KSB7XG5cbiAgbGV0IHggPSBwb2ludFswXTtcbiAgbGV0IHkgPSBwb2ludFsxXTtcblxuICBsZXQgaW5zaWRlID0gZmFsc2UsIHhpLCB4aiwgeWksIHlqLCB4aztcblxuICBmb3IgKGxldCBpID0gMCwgaiA9IHBvbHkubGVuZ3RoIC0gMTsgaSA8IHBvbHkubGVuZ3RoOyBqID0gaSsrKSB7XG4gICAgeGkgPSBwb2x5W2ldWzBdO1xuICAgIHlpID0gcG9seVtpXVsxXTtcbiAgICB4aiA9IHBvbHlbal1bMF07XG4gICAgeWogPSBwb2x5W2pdWzFdO1xuXG4gICAgeGsgPSAoKHlpID4geSkgIT09ICh5aiA+IHkpKSAmJiAoeCA8ICh4aiAtIHhpKSAqICh5IC0geWkpIC8gKHlqIC0geWkpICsgeGkpO1xuICAgIGlmICh4aykge1xuICAgICAgIGluc2lkZSA9ICFpbnNpZGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluc2lkZTtcbn07XG5cblxuIl19 }).call(__global);