GithubHelp home page GithubHelp logo

esri / wayback Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 3.0 13.58 MB

Esri World Imagery Wayback App - Explore, compare and start using all different versions of World Imagery Basemap released since 2014

Home Page: https://livingatlas.arcgis.com/wayback/

License: Apache License 2.0

HTML 0.20% JavaScript 2.60% TypeScript 93.20% Shell 0.01% CSS 3.98%
arcgis-js-api arcgis-online wayback esri living-atlas basemap satellite-imagery change-detection world-imagery

wayback's Introduction

World Imagery Wayback App

This app provides a dynamic browsing experience where previous World Imagery versions are presented within the map, along a timeline, and as a list. Versions that resulted in local changes are dynamically presented to the user based on location and scale. Preview changes by hovering and/or selecting individual layers. When ready, one or more Wayback layers can be added to an export queue and pushed to a new ArcGIS Online web map.

View it live

App

Getting Started

Before we begin, make sure you have a fresh version of Node.js and NPM installed. The current Long Term Support (LTS) release is an ideal starting point.

To begin, clone this repository (or your fork) to your computer:

https://github.com/Esri/wayback.git

From the project's root directory, install the required packages (dependencies):

npm install

Running the app

Now you can start the webpack dev server to test the app on your local machine:

# it will start a server instance and begin listening for connections from localhost on port 8080
npm run start

Deployment

To build/deploye the app, you can simply run:

# it will place all files needed for deployment into the /build directory 
npm run build

Resources

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

The Imagery

The imagery presented in the Wayback app is subject to the terms and conditions set forth in the Esri Master Agreement or Terms of Use. See World Imagery for additional details on the imagery content and applicable Terms of Use.

The Software

Copyright 2024 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's LICENSE file.

wayback's People

Contributors

dependabot[bot] avatar vannizhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

wayback's Issues

World Imagery Wayback should provide a notification indicating if a user has a lack of privileges to create a map, rather than looping the user through the dialog.

If the user is logged in with reduced user type privileges (eg. Mobile Worker/Editor), the create map dialog will loop and not create a map, rather than let the user know that they don't have the required permissions. The user experience could be enhanced if a warning/error was provided to the user.

Devtools shows the following in the network traffic response {"error":{"code":403,"messageCode":"GWM_0003","message":"You do not have permissions to access this resource or perform this operation.","details":[]}}

Which is a good indicator if you use dev tools, but few users do.

Update List Card

  • List item buttons only appear on mouse-over or release selection (rather than all the time)
  • User clicks the download button on the list item.
    • If they aren’t logged in it opens the login page
    • If they are logged in it opens the download dialog

image

Automatic cycle through versions with changes

It would be nice to have the option to automatically cycle the versions with changes. This would allow an user to quickly view the available data without having to do a lot of manual clicking.

Update gutter design

  • add a download button to the gutter.
  • update to calcite icons
  • update the background of Gutter component
  • add gradient for the gutter background (if you apply it to a rectangle the same size as the gutter):
    background: rgb(0,0,0);
    background: linear-gradient(90deg, rgba(0,0,0,0) 80%, rgba(0,0,0,0.19931722689075626) 90%, rgba(0,0,0,1) 100%);
    
  • add small gradient, between the tool groups
    background: rgb(0,0,0);
    background: linear-gradient(5deg, rgba(0,0,0,0) 40%, rgba(0,0,0,1) 100%);
    

image

Add download button to Gutter

  • The gutter download button is disabled until a download is initiated via the list item.
  • The gutter download button’s tooltip says something awesome like, “download local copies of imagery tiles via the release row item” or similar.
  • A count of the currently active processes is shown in the gutter button.
  • The user can open the dialog to see progress by clicking this button.
  • When no request has been initiated, there is no count.
  • When all requests are complete the number is instead a “check” icon

image

Add download dialog

  • The dialog has a title and a description.
  • There can be many concurrent downloads in progress, each spawning a new list item. The user can close this dialog and the progress will not be interrupted. Many items invokes a scrollbar.
  • A download list item has three states:
    • Creation: the user can set the scale range, and is shown the zoom levels and estimated tiles. A “Create tile package” button sits to the right. The zoom slider has an indication of the user’s zoom level.
    • In Progress: after the user clicks the “create” button, the task is sent to the server and the button says, “in progress” and is disabled. A spinny graphic shows that it is working on something.
    • Done: the package is complete and ready to be downloaded. The button says, “Download” and there is a check icon on the left.
  • When five requests are active, disable the release row’s download button (with tooltip saying they hit the max)
  • When a tile package is downloaded, on next dialog view that item has been removed from the list
  • Nice-to-have: test center point tile request at zoom levels 20-23 to provide realistic range of zoom levels in the slider
  • Nice-to-have: show file size in “download” button state

image

image

Typo in README

In the Running the app section there is no script called 'server'. It should be either:
npm run start
or
npm run dev
based on the current package.json (I'm not sure which was intended).

"Versions with local changes" list incorrect after Ghost clump is deployed

When content is removed from the imagery map a ghost clump is deployed to force a 404 error instead of fetching the tile from an older version. Recently a ghost clump was deployed through most of Alaska to "remove" level 19 tiles. When you zoom in to level 19, the older versions no longer show up in the "Versions with local changes" list.

Adding a list of interesting places

We should get a location from that list randomly if there is no predefined location in the URL hash params. So that we don't have to go to Las Vegas every time someone launches the app.

Dynamically add meta tags to head

Currently the meta tags are hardcoded in the inde.html file, however, several meta tags and the adobe analytics script are not needed if the app is hosted in the portal.

Should update the app to inject the meta tags using react-helmet.

Inconsistent metadata

I guess this is more an issue with the metadata catalog than with the app itself but I wouldn't know where else to report it.

The metadata (satellite acquisition date) returned when clicking or querying https://metadata.maptiles.arcgis.com/arcgis/rest/services/World_Imagery_Metadata_{map_id}/MapServer/7/query/query is occasionally incorrect. See for instance here
; first and second basemaps are clearly built from the same satellite acquisition but the first shows Maxar (WV02) image captured on May 14, 2019 while the second reports Maxar (WV02) image captured on Mar 7, 2018. The third basemap is also interesting since it returns the same acquisition date as the second one when in reality it's definitely from a different day.

Otherwise great tool 😃

Update Animate mode to MP4 experience

In a future phase, update the "Animate" mode such that...

  • the animation plays over the full map extent; no adjustable animation window
  • download format is MP4 rather than GIF
  • similar workflow and styling as Landsat Explorer's proposed animation download experience

Update header organization

  • Added “Esri |” to the title
  • Shortened the chart by half
  • Moved the checkbox under the chart
  • Re-organized the selected release text
  • Added a shadow graphic to visually separate the header from the list

image

Smoother transition between versions

Feature request:
Currently when changing the displayed version the screen goes blank first. It would be better if the transition to the new layer is visually smoother, especially if the auto-cycle feature is also available.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.