Maps4HTML / MapML-Specification

Map Markup Language is hypertext for Web maps, like HTML is hypertext for Web pages https://maps4html.org/MapML-Specification/spec/
Other
55 stars 12 forks source link

Specify <input type="datetime"/> or datetime-local or datalist-based values of date-times. #12

Open prushforth opened 6 years ago

prushforth commented 6 years ago

WMS supports different dimensions, including "time". Need to allow MapML authors to include <input type="datetime"/> which supports a (defined subset of ISO 8601). Suggest that min/max/step attributes enable user input in either local or UTC, and with increments defined by @step.

Identifying how to implement the MapML <input type=datetime.../> in HTML+ JS should be considered, since HTML <input type=datetime> is deprecated and <input type=datetime-local> might not be completely appropriate since some / many WMS would have an associated UTC time parameter that would have to be translated from a local to UTC time value for extent submission.

joanma747 commented 6 years ago

WMTS supports different dimension as well. In the WMS capabilities it is possible to specify a list of values or an interval and a period. In WMTS capabilities only a list of values per layer is specified. In MapML, there is no capabilities document, so there is no immediate way to describe the tile matrix set or the extra dimensions that a layer can have.

In other discussions we have introduced the idea of <form> items called <select> to list the available possibilities (as a form of content negotiation) and which one is selected. That could be particularly useful for extra dimensions. Lets imagine that we have layer that has time, and band as extra dimensions. In this case, we could have selectors to specify that:

    <extent>
       <location />
       <select id="dimension-time">
         <option id="2012-13-10Z12:00:00">12:00</option>
         <option id="2012-13-10Z13:00:00" selected>13:00</option>
       </select>
      <select id="dimension-band">
         <option id="band3">red</option>
         <option id="band2" selected>green</option>
      </select>
    </extent>
prushforth commented 6 years ago

I think we need to be able to specify inputs within the extent element which are presented to the user. My current idea is that they could be displayed in the layer control under the layer entry in a " folder" or other way to allow them to be interacted with when necessary, but who's value will be used by the templates on pan or zoom (when retrieving content). The "folder" idea can be seen in the layer control, in which I am hiding a (hard-coded) opacity slider http://geogratis.gc.ca/api/beta/mapml/en/cbmtile/cbmt/ but I was thinking that we could designate this as the "abstract" way to accommodate other inputs that could get input from the user, like a datetime or band as you suggest, other dimension value.

What might be cool is to think of a CSS way to animate that value. I have no idea if that is possible.