diff --git a/src/components/container/App.jsx b/src/components/container/App.jsx index f61ccb01990fecfa133b3f456590a54c4e06b639..c95d4330032526a2bd1d53ccb04806834afc80ff 100644 --- a/src/components/container/App.jsx +++ b/src/components/container/App.jsx @@ -128,6 +128,9 @@ export default function App() { "name" : target.name, "naif" : target.naif, "hasFootprints" : hasFootprints, + "aaxisradius": target.aaxisradius, + "baxisradius": target.baxisradius, + "caxisradius":target.caxisradius, "layers" : { "base" : [], "overlays" : [], diff --git a/src/components/container/GeoStacApp.jsx b/src/components/container/GeoStacApp.jsx index d7b1f8c353034080bd6f7a5665d13a4aa4a59fd7..fbc31f87647c67398c2ffdb1e1a6370d31f96f10 100644 --- a/src/components/container/GeoStacApp.jsx +++ b/src/components/container/GeoStacApp.jsx @@ -29,6 +29,7 @@ let css = { * @component */ export default function GeoStacApp(props) { + console.log(props); const [targetPlanet, setTargetPlanet] = React.useState("Mars"); const [footprintData, setFootprintData] = React.useState([]); @@ -68,7 +69,7 @@ export default function GeoStacApp(props) { bodyChange={handleTargetBodyChange} />
- +
diff --git a/src/components/container/MapContainer.jsx b/src/components/container/MapContainer.jsx index fa48f8660887fa5bb6b36d79bfeb68897b1b8037..b253ca974c7a24e05653b0ce717a8ea212b4645f 100644 --- a/src/components/container/MapContainer.jsx +++ b/src/components/container/MapContainer.jsx @@ -12,7 +12,7 @@ import AstroControlManager from "../../js/AstroControlManager"; * @param {target, map, mapChange} */ export default function MapContainer(props) { - + const [oldTarget, setOldTarget] = React.useState(""); /** @@ -20,7 +20,7 @@ export default function MapContainer(props) { * handles all of the map intialization and creation. */ useEffect( () => { - let map = new AstroMap("map-container", props.target, {}); + let map = new AstroMap("map-container", props.target, props.mapList, {}); let controlManager = new AstroControlManager(map); controlManager.addTo(map); setOldTarget(props.target) @@ -48,7 +48,7 @@ export default function MapContainer(props) { document.getElementById("projectionSouthPole").classList.remove("disabled"); // create new map with updated target - let map = new AstroMap("map-container", props.target, {}); + let map = new AstroMap("map-container", props.target, props.mapList,{}); let controlManager = new AstroControlManager(map); controlManager.addTo(map); setOldTarget(props.target) diff --git a/src/js/AstroMap.js b/src/js/AstroMap.js index e4618db25cc7f3c27e0b05d6ad760b07e84b27de..d075ea20cdad0f53abbb254f83d19ee939a65368 100644 --- a/src/js/AstroMap.js +++ b/src/js/AstroMap.js @@ -43,7 +43,8 @@ export default L.Map.AstroMap = L.Map.extend({ zoomControl: false }, - initialize: function(mapDiv, target, options) { + initialize: function(mapDiv, target, mapList, options) { + this._mapList = mapList this._mapDiv = mapDiv; this._target = target; this._astroProj = new AstroProj(); @@ -216,37 +217,21 @@ export default L.Map.AstroMap = L.Map.extend({ wfs: [] }; - let targets = MY_JSON_MAPS["targets"]; - for (let i = 0; i < targets.length; i++) { - let currentTarget = targets[i]; - - if (currentTarget["name"].toLowerCase() == this._target.toLowerCase()) { - this._radii["a"] = parseFloat(currentTarget["aaxisradius"] * 1000); - this._radii["c"] = parseFloat(currentTarget["caxisradius"] * 1000); - let jsonLayers = currentTarget["webmap"]; - for (let j = 0; j < jsonLayers.length; j++) { - let currentLayer = jsonLayers[j]; - if ( - currentLayer["projection"].toLowerCase() != projection.toLowerCase() - ) { - continue; - } - if (currentLayer["type"] == "WMS") { - // Base layer check - if (currentLayer["transparent"] == "false") { - layers["base"].push(currentLayer); - } else { - // Do not add "Show Feature Names" PNG layer. - if (currentLayer["displayname"] != "Show Feature Names") { - layers["overlays"].push(currentLayer); - } else { - if(currentLayer["layer"] == "NOMENCLATURE"){ - layers["nomenclature"].push(currentLayer); - } - } - } - } else { - layers["wfs"].push(currentLayer); + let systems = this._mapList["systems"]; + for(let x = 0; x < systems.length; x++){ + let targets = systems[x].bodies + + for (let i = 0; i < targets.length; i++) { + let currentTarget = targets[i]; + if (currentTarget["name"].toLowerCase() == this._target.toLowerCase()) { + this._radii["a"] = parseFloat(currentTarget["aaxisradius"] * 1000); + this._radii["c"] = parseFloat(currentTarget["caxisradius"] * 1000); + let jsonLayers = currentTarget.layers; + console.log(jsonLayers['base']); + for (let key of Object.keys(jsonLayers)){ + layers[key] =jsonLayers[key].filter(function(currentLayer){ + return currentLayer["projection"].toLowerCase() == projection.toLowerCase(); + }); } } }