Commit 29dfef7f authored by ausvat's avatar ausvat
Browse files

Fix observations list Fixes #8

parent 2aa59a59
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@
    "url-loader": "^4.1.1",
    "webpack": "^5.68.0",
    "webpack-cli": "^4.9.2",
    "webpack-dev-server": "^4.7.4",
    "webpack-dev-server": "^4.15.1",
    "webpack-merge": "^5.8.0"
  },
  "dependencies": {
+19 −2
Original line number Diff line number Diff line
@@ -114,17 +114,32 @@ export default function FootprintResults(props) {
      let collectionUrls = {};
      for (const collection of props.target.collections) {
        
        
        let isInStacAPI = collection.hasOwnProperty("stac_version");
        
        if(isInStacAPI)
        let isInPyAPI = collection.hasOwnProperty("itemType");
        
        // check for pygeo api
        if (isInPyAPI)
        {
          // change filter for the pygeo api
          myFilter = "&limit=" + step;
        }

        // check for both API's
        if(isInStacAPI || isInPyAPI)
        {
          let itemsUrl = collection.links.find(link => link.rel === "items").href;

          collectionUrls[collection.id] = itemsUrl + myFilter + pageInfo;

          
        }
        else
        {
          let itemsUrl = collection.links.find(link => link.rel === "items").href;
          collectionUrls[collection.id] = itemsUrl + pageInfo;
          
        }

      }
@@ -153,6 +168,8 @@ export default function FootprintResults(props) {
        setHasFootprints(Object.keys(collections).length > 0);
        setIsLoading(false);

       

        // Send to Leaflet
        window.postMessage(["setFeatureCollections", myId, collections], "*");
      })();
+61 −9
Original line number Diff line number Diff line
@@ -88,9 +88,30 @@ export function FilterTooStrict(){
// shown as the result for a footprint.
export function FootprintCard(props){

  //initialize variables 
  let ThumbnailLink = '';
  let modifiedProductId = '';
  let BrowserLink = '';
  let showMetadata;
  
   // Metadata Popup
  const geoTiffViewer = new GeoTiffViewer("GeoTiffAsset");
  const showMetadata = (value) => () => {

  


  // Check for pyGeo API vs raster API
 
  // Check if "assets" is available before accessing it
  if (props.feature.assets && props.feature.assets.thumbnail && props.feature.assets.thumbnail.href) 
  {
    // set Thumbnail link
    ThumbnailLink = props.feature.assets.thumbnail.href;

    BrowserLink = 'https://stac.astrogeology.usgs.gov/browser-dev/#/api/collections/' + props.feature.collection + '/items/' + props.feature.id;
    
    // display meta data for STAC api
     showMetadata = (value) => () => {
      geoTiffViewer.displayGeoTiff(value.assets.thumbnail.href);
      geoTiffViewer.changeMetaData(
        value.collection,
@@ -101,12 +122,43 @@ export function FootprintCard(props){
      geoTiffViewer.openModal();
    }; 

    
  } 
  else 
  {

    // Switch the id and date and link
    props.feature.id = props.feature.properties.productid;

    props.feature.properties.datetime = props.feature.properties.createdate;

    modifiedProductId = props.feature.id.replace(/_RED|_COLOR/g, '');

    ThumbnailLink = 'https://hirise.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_012600_012699/' + modifiedProductId + '/' + props.feature.id + '.thumb.jpg';

    BrowserLink = props.feature.properties.produrl;

    //display different modal for PyGeo API
    showMetadata = (value) => () => {
    geoTiffViewer.displayGeoTiff(ThumbnailLink);
    geoTiffViewer.changeMetaData(
      value.properties.datasetid,
      value.properties.productid,
      value.properties.datetime,
      value.links
    );
    geoTiffViewer.openModal();
  };
  }
  


  return(
    <Card sx={{ width: 250, margin: 1}}>
      <CardContent sx={{padding: 1.2, paddingBottom: 0}}>
        <div className="resultContainer" >
          <div className="resultImgDiv">
            <img className="resultImg" src={props.feature.assets.thumbnail.href} />
            <img className="resultImg" src={ThumbnailLink} />
          </div>
          <div className="resultData">
            <div className="resultSub">
@@ -130,11 +182,11 @@ export function FootprintCard(props){
              clickable
            />
            <Chip
              label="STAC Browser"
              label="Browser"
              icon={<LaunchIcon />}
              size="small"
              component="a"
              href={`https://stac.astrogeology.usgs.gov/browser-dev/#/api/collections/${props.feature.collection}/items/${props.feature.id}`}
              href={BrowserLink}
              target="_blank"
              variant="outlined"
              clickable
+3 −3
Original line number Diff line number Diff line
@@ -200,8 +200,8 @@ export default L.Map.AstroMap = L.Map.extend({

  // show thumbnail on map when clicked - use stac-layer for this?
  handleClick: function(e) {
    const url_to_stac_item = e.layer.feature.links[0].href;
    console.log (url_to_stac_item);
    //const url_to_stac_item = e.layer.feature.links[0].href;
    //console.log (url_to_stac_item);
    // fetch(url_to_stac_item).then(res => res.json()).then(async feature => {
    //   const thumbnail = await L.stacLayer(feature, {displayPreview: true});
    //   thumbnail.on("click", e => {
+11 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ export async function FetchObjects(objInfo) {
 * @param {string} queryString - The query to narrow the results returned from the collection.
 */
export async function FetchFootprints(collection, page, step){

    let offsetMulitiplier;
    let pageInfo = "";
    if(collection.url.slice(-1) !== "?") {
        pageInfo += "&"
@@ -60,6 +60,16 @@ export async function FetchFootprints(collection, page, step){
      pageInfo += "&limit=" + step;
    }

    // check for pyGeo API
    if (!collection.url.includes('stac')) 
    {
        offsetMulitiplier = (page * 10 - 10);
        pageInfo = "&offset=" + offsetMulitiplier;
    }
    
    offsetMulitiplier = 0;
    

    let jsonRes = await FetchObjects(collection.url + pageInfo);
    return jsonRes.features;
}