Peter Rushforth: We're on day four of the joint W3C/OGC maps for the web workshop and
Peter Rushforth: We're going to be starting the the agenda tonight with
Peter Rushforth: On the topic of creating accessible web map widgets with two presentations for the first from Nic Chan, who will be presenting first her and Robert Linder's work who are Robert and Nic are both members of the Maps4HTML community group and they've done
Peter Rushforth: A review of the end evaluation of various map what mapping libraries again and compared them with the Web Content Accessibility Guidelines and she'll be reporting on their work and then we're going to proceed to an introduction to digital non-,visual maps.
Peter Rushforth: From Brandon Biggs of Smith-Kettlewell Institute.
Peter Rushforth: And after that, we'll have a breakout. [interrupted] Hello?
Peter Rushforth: After that, we'll have a breakout presentation from Brandon
Peter Rushforth: About building cross sensory maps using Audiom
Peter Rushforth: And
Peter Rushforth: At that point we'll cut over and I will finish my part two of the MapML proposal and maybe give a little demo of our, our custom elements suite that we've been developing in the Maps4HTML community group.
Peter Rushforth: So I'd like to just remind everybody that we welcome lots of interaction on Gitter and discourse in particular, get lots of comments and feedback on people's presentations through those avenues.
Peter Rushforth: And
Peter Rushforth: I hope somebody will paste the links in there so that it's easily to get to and the comments can come anytime. So we can do it 24/7
Peter Rushforth: And I also just remind everybody that we have a code of conduct that we're following the W3C code of conduct and you're free to
Peter Rushforth: Express yourselves in a polite and respectful manner and all that. And if you feel that you have not been treated in a fair way please approach one of the committee, and we will do what we can to address your concerns. So with that, I'm going to play Nic Chan's
Peter Rushforth: Slide. So maybe I'll share
Peter Rushforth: share my screen and Nic has recorded
Peter Rushforth: Her presentation so
Peter Rushforth: I will switch over to that.
Peter Rushforth: Share
Peter Rushforth: Here we go.
Hello everyone! My name is Nic Chan and I have been contributing to the Maps 4 HTML Community Group over the past year, with a particular focus on the Uses Cases and Requirements report. Today I will be presenting on the accessibility of existing map widgets and tools.
Before I get into the details of the analysis. I'd like to lay out some definitions that will frame this discussion.
The map tools discussed today fall into two general categories, widgets and client-side mapping APIs.
Widgets refer to an embeddable map, typically in an iframe or something similar, that requires minimal code to implement.
These include things like the Google Maps embed that small business owners may use to share their store location.
They typically require the developer to do more configuration and instantiation work, with the benefit of offering more control over the end result. You would typically find these as a part of web apps like storefinders or delivery services.
In this presentation, I'd like to frame accessibility as the degree to which these maps are usable by disabled people.
Some contexts may use the term accessibility to encompass other things, like cost and size of these tools and how that pertains to access, but in this case we will be focusing on the usability aspect, and especially how these mapping tools measure up to our next term, WCAG.
WCAG, short for Web Content Accessibility Guidelines, is a series of guidelines developed by the W3C in order to provide a shared standard for developing accessible web content. It is important to note that the WCAG is not the be all and end all of accessibility.
When it comes to things like maps, a tool could meet every single criterion, but still not be accessible.
There are many outstanding questions (which will be discussed in greater detail by other presenters and panelists)
About what would constitute an equivalent experience to what a map can communicate for low vision and blind users.
However, it is still worthwhile to examine the existing tools with the wicked in mind so that we can account for other disabled users beyond low vision and blind users, such as people who have motor impairments.
By looking at these existing tools, we can determine any common patterns worth adopting for a native HTML map element.
Not all WCAG criterion are relevant to web maps, so I’ve pulled out some of the most applicable and interesting ones, where the map tools meet these criterion with varying degrees of success.
The tools reviewed today include both widgets and libraries from vendors like Google, Bing, Apple, MapBox and TomTom, as well as some open source solutions with OpenStreetMap tiles.
For a full breakdown of how each tool measures up and the details of each criterion, please visit Robert Linder’s full evaluation at tinyurl.com/wcag-maps.
Robert is a member of the Maps4HTML Community Group, and his contributions have been invaluable. With that out of the way, let's begin.
Non Text Content. 5/11 tools failed. This criterion states that all non-text content has an equivalent text alternative.
None of the map tools offer any meaningful text alternative to the map content by default, so on that front, all of the maps would fail, unless context is provided by the site developer.
As mentioned earlier, what this alternative content could look like is a very complicated question, that depends on the content of the map and also warrants larger discussion.
Because developers and authors may choose to provide additional context when evaluating this criteria we are focused on text alternative to controls, other than the map itself.
In this case, this criterion also applies to things like alternative text for logo images and making sure all icon buttons are labelled descriptively for screen reader users.
As an example, maps, often use the plus and minus symbol to indicate and zooming in and out.
As a sighted user, I can see the visual context these buttons are in, and I can also see that the map zooms in and out when I press the buttons
However, if you just hear “Plus Button”, the context is a little more unclear, it could mean adding a pin to the map, or changing the quantity of another control.
We can include context without changing the visual appearance of the control by adding things like alt text to images, or an aria-label to the control. A possible solution to resolve this example might be to add an aria-label to the button.
Info and relationships. 11 out of 11 tools failed. this criteria requires that all information, including a controls state or structure can be determined programmatically or is otherwise available through text.
Tools often failed to label the map structure as a distinct piece of content and as a control.
A map generated by these tools is not just a static image, it is a control in and of itself.
When the map has focus most tools will allow you to do things like pan and rotate the map using keyboard shortcuts, or your mouse pointer.
Thus, the map needs to be labeled so that is identifiable as a control, not just an image.
In tool authors’ defense, there isn’t a set standard or consensus for how to approach this yet, as ‘map’ is not yet a valid component role, so there may be uncertainty on how to appropriately label this map container.
The other most common reason for failure is the lack of attention paid to control state. For example, all of these web maps allow users to zoom in and out to an extent.
Once you've hit the zoom limit the appropriate control should be disabled but very few examples communicate this programmatically and most only adjust the styles.
Furthermore, screen reader users will often have no idea of the current zoom level. Bing stands out amongst the examples as it announces the current zoom level in addition to the buttons state, so a user of an audio interface will always know what the current status is.
Contrast. 9/11 tools failed. To pass this criterion all text should pass a minimum contrast ratio of 4.5 for regular sized text.
The contrast ratio refers to the contrast between the text color and the background color.
Because many widgets do not allow for color customization, having accessible defaults would go a very long way in terms of ensuring map accessibility. This contrast criterion can apply to both the map controls and the actual map content.
t. Some maps had text buttons that did not meet the contrast ratio. Fixing this is as simple as changing the text color on the buttons.
Most maps had contrast issues within the map content, particularly with labels for bodies of water and minor roads, such as in this example here.
This screenshot shows the ocean filled in with a light blue color, but the text on top of it that says ‘North Atlantic Ocean’ is a medium blue, and it never gets any darker or larger no matter how much you zoom in.
Maps are in a tricky position as color hierarchy is very important for establishing focal points, and there is a need to deprioritize certain map features to avoid making the map too noisy.
When a map is zoomed out, it is understandable if some minor labels are below the average font size, or have lacking color contrast.
However, when a map is zoomed into an area, a good map may have these minor labels take visual priority and be displayed larger and with more contrast.
Some maps included a thin white outline around each label to increase the text contrast, a technique that is commonly used in closed captions for TV. Keyboard. 7/11 tools failed.
Every functionality that is available to mouse or touch users must also be available for keyboard only users. This includes all interactable controls, as well as functions activated by pointer gestures, which most maps do have.
Most failures in this instance, are due to the use of non native controls. When a semantic element like an HTML button is used all the behaviors that are expected of the control are handled automatically by the browser.
It is very common for developers to add a click handler to a div element and ignore the other required behavior.
Some custom buttons are not able to be accessed by hitting the tab key and cannot be activated because they cannot be accessed at all, whereas others can be focused, but do not have any means of activation through the keyboard.
A user with the pointer device can pan across the map by dragging the map interface some apps like a way to do this with the keyboard, either because the map container is not focused or because they lack the keyboard shortcuts necessary.
Character key shortcuts, 1/11 tools failed. This criteria in states that if a keyboard shortcut is implemented using character keys that at least one of the following is true.
A mechanism is available to turn the shortcut off or a mechanism is available to remap the shortcut to use modifier keys such a shift control or alt, or the keyboard shortcut is only active when that component has focus
This criterion exists to prevent conflicts with assistive technology shortcuts and web interface shortcuts. The NVDA screen reader uses arrow keys to navigate text, and it may conflict with the use of arrow keys to pan and scroll the map.
None of the web maps we analyzed used techniques #1 or #2. The web maps that have shortcuts and passed this criterion have opted for technique 3, only allowing keyboard shortcuts when the map container has focus.
Focus order. 2/11 tools failed. To pass this criterion, elements must receive focus in an order that matches the content reading order.
In English and other left-to-right languages, we have an expectation that elements will be interactable from left to right, top to bottom, in the same order we read text.
Here is a diagram which displays the focus order of the Google Maps embed. The numbers indicate which element receives focus in what order.
The first focusable element is the map container, which makes sense as the focus order should go from outward to inwards.
We return to both zoom control buttons in the bottom right, and finally, the unlabelled toggle satellite imagery button in the bottom left corner.
In this case, the developers used styles to position the controls arbitrarily. Without proper focus order, the experience of tabbing through the map component is quite jarring and unnecessarily disorienting to bounce from corner to corner.
Focus visible. 7/11 tools failed.
This criterion is related to the previous one. The focus ring is an indicator that shows which interactive element currently has focus, an example of which is shown here.
We can see the zoom out button currently has focus due to the thick black ring that Chrome applies.
It is present by default in all browsers, but is common for developers to remove this indicator without replacing it with their own styles..
In combination with the previous criterion, this criterion is serious enough to render a map component unusable for sighted keyboard-only users, because there is no way for them to determine what element is currently selected.
In some cases, the focus isn’t persistently visible, which is due to the addition of scripts that remove the outline once the element is focused.
This criterion is an example of the default behavior being accessible, and the developers have overridden this default behavior to make an ultimately inaccessible design choice.
Language of parts, 9/11 tools failed.
The requirement to pass this criterion is fairly simple, all it requires is that the content’s language is included in the markup.
This is important for many accessibility reasons, such as making sure screen readers read words with the correct intonation,
and can be useful for features like on-the-fly language translation. Despite the fact this criterion is simple to achieve, many vendors fail to implement this.
Passing this criterion is as simple as adding a single lang attribute to the containing element, and lang attributes to text in other languages.
The next slide has a gif which demonstrates an unexpected scrolling appearance. Viewers with vestibular issues may wish to look away for a second.
On Input. 2/11 tools failed.
This criterion states that changing any setting in a user interface component should not trigger any changes of context unless the user has been warned about it.
In layman’s terms, if a control is used, there shouldn’t be any unexpected side effects like changing the viewport size.
Here we have a gif where the up and down arrow keys are being used to pan the map, but unfortunately the viewport scrolls up and down as well. This can be quite disorienting, so it’s important to test for side effects like this.
Building accessible web maps is no easy task. The base level of accessibility for existing web map solutions is quite poor overall, and no one widget or library stands out as being far superior to the rest.
Criteria where almost every tool fails are often due to the lack of standardization, and this is where having a native HTML map element could really set the bar for what map widgets should strive to be.
Regardless, there are quite a few quick and easy wins to be had. I hope any developers who work with these map libraries can consider implementing some of the low-hanging fruit I’ve brought up here.
Thank you! If you have any questions about the material covered, feel free to reach out to me at email@example.com.
Amelia Bellamy-Royds: You with us Peter?
Peter Rushforth: Yay. Yeah, we're back.
Peter Rushforth: That was very interesting. Thank you very much Nic, really excellent presentation and with all kinds of little
Peter Rushforth: Short lessons, short and digestible lessons that we can go back to
Peter Rushforth: as need be.
Peter Rushforth: So with that, I guess.
Peter Rushforth: I'd like to hand it over to Brandon. Are you ready for the stage.
Brandon Biggs: Yeah. Can you hear me.
Peter Rushforth: We can, yeah.
Brandon Biggs: Let me share my screen here.
Brandon Biggs: All right.
Brandon Biggs: You might hear my screen reader here for a sec.
Brandon Biggs: Okay.
Brandon Biggs: Are you guys able to see my screen.
Amelia Bellamy-Royds: No, not right now.
Brandon Biggs: Alright.
Brandon Biggs: Perfect. Awesome.
Brandon Biggs: Cool. So yeah, this basically is going to be a an extremely rapid introduction to nonvisual maps, it's, it's going to be really, really brief because there's a lot more to cover in
Brandon Biggs: Two modalities and there is typically and like this is an introduction to visual maps alone because audio and tactile are kind of big. We'll will go through this, the real briefly here.
Brandon Biggs: This is what most web maps are today. Basically, it's what we saw in the last presentation, basically.
Brandon Biggs: I'm looking at particular widgets. So, the ones that are like embedded into a website and can show like a can-, there's typically a canvas that it used to pan around and see the vectors or the raster data.
Brandon Biggs: Presented in the canvas.
Brandon Biggs: So there's some problems with these, not least of which are that 285 million people in the world can't utilize those maps.
Brandon Biggs: And they're not nonvisual, and currently the WCAG guidelines say that you can use the text description, but there's a huge problem with text descriptions in that the
Brandon Biggs: The whole fields of cartography and data visualization arose because text descriptions were not adequate enough. And so if we think that that text descriptions are adequate, then we don't really need data visualization or cartographer. So that's, that's just, you know,
Brandon Biggs: I don't, I don't think that text descriptions can convey the spatial information, a lot of studies that show that text descriptions are not
Brandon Biggs: Do not provide the same information as an actual map.
Brandon Biggs: So I'm going to look at three differentm, sorry, two different types of maps,
Brandon Biggs: Tactile maps and auditory maps and each one of these has very similar
Brandon Biggs: Requirements. So one of them is that each map needs to have a name attribute. So
Brandon Biggs: When you're in one of these other modalities, they're more egocentric. So basically you're moving like your finger through the map or you're
Brandon Biggs: Moving your head through the map like as a listener and you're not necessarily viewing the map in totality that you would an allocentric point of view, like you would using
Brandon Biggs: Like the map that we saw at the beginning of the presentation. So if you have an unmarked polygon point or line, that's basically not extremely useful because it doesn't provide any kind of context of why that exists. There's also,
Brandon Biggs: Yeah, so that's that's basically. Those are the commonalities between these different types.
Brandon Biggs: So the first type of nonvisual map will look at our visual, auditory maps and these
Brandon Biggs: Are presented on a tablet and you move your finger around the screen. And when you reach a line or a polygon or point, it'll vibrate and when there's intersections, like say for example,
Brandon Biggs: It has two lines intersect. There'll be like a pulse and then it will tell you
Brandon Biggs: What the name of that intersection is with it, what the two lines are the names that two lines are that intersect, and then you can go move your finger along the the intersecting, you know, what if you want to keep going or along the intersecting line.
Brandon Biggs: And and this uses the audio vibration API sorry, the web vibration API. I don't think it's actually been incorporated in the web, but the web vibration API, I think, is probably adequate enough to do this.
Brandon Biggs: Here's some citations for the
Brandon Biggs: The audio maps and you can read more about them and watch them videos and try them out.
Brandon Biggs: So the next section is on digital auditory maps. And this is actually my specialty. So I'm probably going to talk a little bit more about these than I am on the audio maps. So the digital auditory maps basically
Brandon Biggs: They use
Brandon Biggs: A, as I said before, an egocentric point of view. So basically, use your arrow keys or some sort of
Brandon Biggs: control mechanism to move your listener through the space and they use something called binaural audio and by binaural is where the sounds.
Brandon Biggs: That the features in the map have different sounds. And you can hear those sounds around you in spatial audio and a lot of features also will have their own sound. So when you're moving over a a feature that will make a sound.
Brandon Biggs: Here's an example of a city map using that that's in
Brandon Biggs: Taking OpenStreetMap data and it's it's a
Brandon Biggs: Call the TEAM system. And basically this is
This is the TEAM audio system and we are currently in London on Gabriel's wharf.
facing south, and I'm going to do a scan to see what's around us. Screen reader: Sonar dialogue press tab to navigate.
Screen reader: 4 Landmarks, 32 meters, two o'clock. Bernie Spain gardens 14 meters, eight o'clock. Bernie Spain gardens 54 meters 10 O'clock. Restaurants studio 616 meters 12 o'clock. [restaurant noises]Brandon: So we saw that there's a a garden which we can hear at eight o'clock and on that ear.
And there's a restaurant in front of us.
I'm going to walk towards the restaurant. [beeping noise indicating walking, restaurant noises increase in volume]
Screen reader: Restaurant studio 6 on Gabriel's Wharf
Brandon Biggs: So this basically does takes the type that's in
Brandon Biggs: OpenStreetMap like restaurant or Park and assigns a looping sound to it that you can hear in spatial audio and then it also uses the Name attribute, as you saw to label, what exactly you're in when you reach the polygon thats like the restaurant.
Brandon Biggs: Here is the the references for the city map that we just saw. And you can go and view those papers, if you want, or try the, the TEAM system yourself, it's pretty interesting.
Brandon Biggs: So the next type of map. We're going to look at our heat maps and you probably pretty familiar with these. They're basically they show different points, data points throughout the map and and and how they change through the geography of the map.
Video Narrator Intrerson is an interactive sonification tool that allows low-vision users to explore map data such as population densities, we are looking at a US state map of population. The population for each state is presented by a violin sound. [violin noises of varying pitches]
Video narrator: A high pitch means high value. So California has more people than Alaska.
The sound is in stereo, so the sound for Alaska comes from the left.
And the sound for Maine from the right
Pressing the Space key reads all the details about a state.
Brandon Biggs: Basically that's that's kind of a really brief overview and the heat maps and you can go test these out.
Brandon Biggs: There we go. Heatmap references. There you go. You can go try this out as well. It's called iSonic. And it's very interesting, and also the
Brandon Biggs: I didn't mention this hear, but the SAS graphics accelerator also has a
Brandon Biggs: Is an audio heat map as an audio heat map as well. And so, yeah, that's basically it's a pretty, I would say it's probably one of the more standard types of auditory maps nowadays.
Brandon Biggs: This is an enclosed space map. It's very similar to the first map where you have a yourself as a listener in the space. And there's different sounds throughout around you. But this one has a
Brandon Biggs: Little more.
Brandon Biggs: You can hear a little more sounds in this
Screen Reader: First person view.
Screen Reader: Long Ram. Eva's bridge.
Screen Reader: Ground carousel.
Screen Reader: 25, 18
Screen Reader: Disc spinner.
Screen Reader: Playground walkway
Screen Reader: Spinner. Lazer heart is very far off ahead and to the right. The nearest point to that - 28 - 46
Screen Reader: Laser Park
Screen Reader: grid view. playground walkway. 22 49. Laser heart 22. 48. Net spinner. 22. 30.
Brandon Biggs: So that's basically
Brandon Biggs: So that's basically a another version of an
Brandon Biggs: enclosed space maps. That'd be like a building or playground. This is a playground and or something like Disneyland, which is a little bit different than a city map or a heat map.
Brandon Biggs: And these are some references for using this map and we'll actually you try this after this presentation because I'm actually the one who made that and see, hear my voice in there. So basically,
Brandon Biggs: I'm, um, these are the maps that that nonvisual users have created for themselves or have had a lot of research done on them.
Brandon Biggs: And if you have any questions about nonvisual maps any type, please get in contact with me. My email is firstname.lastname@example.org
Brandon Biggs: I would like to acknowledge the funding, funding sources of NIH and neither
Brandon Biggs: Thank you and hope you stick around for the workshop
Peter Rushforth: I assure you, Brandon, we will. It's a pretty interesting talk.
Peter Rushforth: And so I think, I think you're up. Next up again.
Brandon Biggs: All right.
Brandon Biggs: Let me
Brandon Biggs: Let me share my screen.
Brandon Biggs: No.
Brandon Biggs: Can you guys see my screen. Yeah.
Brandon Biggs: Okay, one sec.
Brandon Biggs: I lost zoom.
Brandon Biggs: Let me-
Brandon Biggs: So, if you go to the website, url
Brandon Biggs: xrnavigatio.io/audiom-getting-started
Brandon Biggs: There you go. xrnavigatio.io/audiom-getting-started
Brandon Biggs: You can
Brandon Biggs: Go through this kind of at your own pace. Basically, we need to do is login to the Audiom website and I must preface this by this is kind of a new system. So there's not a lot of polish on it yet. So
Brandon Biggs: We're in the midst of building it out and you should, if, if you want to keep exploring this after today, there'll be a lot of updates in the next couple of weeks because they're really starting to work on it now. So anyways, basically.
Brandon Biggs: The event is. Yeah.
Doug Schepers: Oh. Hey Brandon sorry this is Doug, I just want to make sure that people that that we're setting the context. So that was the end of the presentations.
Doug Schepers: The pre-,the earlier presentations. We're now entering into a the the breakout which is building cross sensory maps using Audio M, Audiom?
Doug Schepers: And so, and Brandon is also is the facilitator for this. So I just want to make sure people understood that the presentations have ended, and now we're actually in a in a breakout session.
Peter Rushforth: Yeah, good point. Thank you, sorry Doug.
Doug Schepers: No problem.
Doug Schepers: Just making sure people understood
Brandon Biggs: Awesome. But you should definitely stick around. So
Brandon Biggs: So Audiom is a tool that allows you to make maps that have an audio component and a visual component with the same data set. And currently, they run off of GeoJSON.
Brandon Biggs: And but I'm but I'm adding other future, sorry, other map types as as I get to it. But let me know if you want me to add a particular map type and I can data type, and I can add that
Brandon Biggs: So I guess one major con of this is that raster maps aren't accessible by default, just because they're a bunch of pictures and
Brandon Biggs: They don't have any information that can tell the computer what exactly is happening and and thus, can't tell the user what's happening, who's using the computer.
Brandon Biggs: And so, so it can it can just tell you kind of what colors are at a particular location. So anyways vector maps are really the only way to make accessible maps. I'm using this method.
Brandon Biggs: So first, you go to audiom.xrnavigation.io and sign up
Brandon Biggs: And then you will enter into
Brandon Biggs: And you're here and you can read a lot about Audiom
Brandon Biggs: Here, sure. I got the latest version. Anyways, so basically
Brandon Biggs: The first step is to go to
Brandon Biggs: Data sources.
Brandon Biggs: And here, click the Add, the Create New button.
Brandon Biggs: And that's going to bring you to a
Brandon Biggs: A form here so you can enter a name. So I'm just going to call this
Brandon Biggs: Here's where you can write your GeoJSON So I like to use. I have people use a geojson.io and I linked to it in the guide.
Brandon Biggs: I'm it's actually not accessible for blind people and I'm in the midst of also building a map editor using the same technology for blind people, but it's not quite ready yet. So I actually wrote out some GeoJSON by hand.
Brandon Biggs: You want select that, you want a feature collection.
Brandon Biggs: So I'm gonna go ahead and paste that here.
Brandon Biggs: And then, and click the Create button.
Brandon Biggs: That created the data source. Now I'm going to go
Brandon Biggs: Click on maps.
Brandon Biggs: And there's some existing maps here, the playground map is here if
Brandon Biggs: You want to try
Brandon Biggs: Playground.
Brandon Biggs: We can go create a new map.
Brandon Biggs: And this is 'Box1 map'.
Brandon Biggs: And then I'm going to leave these other fields blank.
Brandon Biggs: We'll do a
Brandon Biggs: Box1
Brandon Biggs: As our data source.
Brandon Biggs: And create
Screen Reader: Blank Space, one, two.
Brandon Biggs: Now we can go explore this.
Brandon Biggs: So we can hear the box in there was called scary building and I'm going to switch to using a screen reader, because I really don't like that but that voice. But basically, now you can go through and explore the map that was there.
Brandon Biggs: You can see that there's, you know, all the different information about the geometries there, which is really cool.
Brandon Biggs: And there's the visual view.
Brandon Biggs: Don't know if you guys can see it. I can't see it, but I know it's there. And I think there should be
Brandon Biggs: Some sort of thing that like a green dot that that shows your characters at your, your listeners at on the, on the, the audio map. So anyways, that's, that's basically how you you create the audio maps in an Audiom. And you can add sounds to your different
Brandon Biggs: Objects.
Brandon Biggs: By adding different attributes like short underscore sound or it's all in the guides. If you want to learn how to make these or you can contact me and we talked about making some of your data sources
Brandon Biggs: Accessible in Audiom. So another cool thing here is you can copy and paste this embed URL into your own website and and Audiom will be there right now there's kind of a limited
Brandon Biggs: Number of shares. I think it's like 1000 or something like that. So, um, if you want-
Badita Florin: May I ask you a question? Because I can see that you can embed an iframe. Does it have a possibility of like showing the location. Like, imagine that I want to create for a park.
Badita Florin: And the user I will need to to ask for the geolocation, so we can pinpoint himm is that's possible currently, or it will be or can be done or not?
Brandon Biggs: So let me let me understand your question. So basically you say you're saying that you want to have your park,
Brandon Biggs: Or let's say, directions from your current location to a park.
Badita Florin: Yeah, let's say that I will take a group of 10 people that have problem with site and I would bring them to that park. They will each have an app that will be loaded and the to track their location with where they are now. So kind of the point to update based on the location.
Brandon Biggs: Yeah, so that's not currently available, but that's definitely something that that we're going to be adding pretty soon, because I believe
Brandon Biggs: I've never actually done it yet, but
Brandon Biggs: I'm pretty sure the do the Web API. There's a web API to get your current location. So yeah, that's definitely, I got some funding to build the app. So it's definitely in the short the short list of features that we're going to be making
Badita Florin: Yeah.
Brandon Biggs: Awesome. So yeah, let me know if you have any questions, and please feel free to make as many maps as you want and share them with your friends and
Brandon Biggs: Yes, that's, that's basically Audiom
Peter Rushforth: Thank you very much Brandon, that's pretty cool. I've already started tinkering with it. I'll be sure and get touch. So you want us to play with it now and
Peter Rushforth: yeah, give you some questions?
Brandon Biggs: Sure, absolutely.
Brandon Biggs: Yeah.
Brandon Biggs: I'm trying to find zoom. One sec. Let me find zoom
Brandon Biggs: See my zoom
Brandon Biggs: Okay.
Brandon Biggs: All right now. Now, you should be able to see you should see me, not my screen.
Badita Florin: I get an error code when I'm trying to access the ID for public map.
Brandon Biggs: Yeah, sorry that's that's a, that's a bug. Don't just those four
Brandon Biggs: Were Yeah, those, those two maps are to have an error. Sorry.
Badita Florin: Oh, I see. They have like the playground, also, I know the plaground works. The, the demo also
Badita Florin: The eight ID.
Badita Florin: Okay.
Brandon Biggs: The 8 ID is is the one
Brandon Biggs: I just made
Brandon Biggs: No...
Brandon Biggs: I think, I think we're seeing
Brandon Biggs: We're seeing everybody's maps that everybody's been making. So those are those are being shared here, so everybody can see them at the moment.
Brandon Biggs: During this presentation.
Brandon Biggs: So that's that. Yeah. So somebody, somebody created that. And if it's giving an error. That means that the data isn't formatted correctly.
Doug Schepers: Brandon?
Doug Schepers: FYI. I just want to make sure you know you are still sharing your screen.
Brandon Biggs: Yeah, that's fine,
Brandon Biggs: I just can't find zoom to stop.
Amelia Bellamy-Royds: Would you prefer to stop cuz coast can cut you out.
Brandon Biggs: Okay, it's up to you guys. I'm not
Brandon Biggs: Yeah so data sources- search data sources is where you look for the name of the source that you are
Brandon Biggs: You want to add to your map. So basically if you added a data source, then you've typed in the name, and it should auto populate and then you click 'Create map' and that's that's that's that's
Badita Florin: And another suggestion would be because
Badita Florin: Probably most of the use of the people that we create the maps will be people that they will be able to see so
Badita Florin: Maybe to have the ability to add like a slip to have like a tile layer behind. So for me, my use case, I would want to like see okay the points are really where they should be based on
Badita Florin: The roadmap for like OSM or like being images or something.
Brandon Biggs: Yeah, I guess the, the issue with that. I want to see if there's
Brandon Biggs: Some sort of detailed vector layer that we can hook into, cause the tile maps. I mean,
Brandon Biggs: Like it completely defeats the purpose of the map. If you, if you start using raster data.
Badita Florin: Because I'm thinking just when designing like when you will
Badita Florin: put it website. Maybe not all in the sense we are, but at least, for designing part
Brandon Biggs: Yeah, that's definitely a good, a good point. Um, yeah, I can definitely look into that right now if you created on geojson.io, I know they definitely have a raster background.
Brandon Biggs: I haven't built a map editor yet so
Brandon Biggs: Yeah, that's, yeah, definitely, definitely look into that and hopefully there's a good a better solution than just like not using raster data because I would like to
Brandon Biggs: Figure out, you know, a good alternative to raster data.
Brandon Biggs: You're a little bit quiet.
Bryan Haberberger: There. Sorry. Sorry, I had the microphone away from my face. I got it. Um, where do you like do I assume you have to save some of that data somehow, whether you're doing it in cache or an actual file somewhere. So I'm just kind of curious how you save that that map data and that GeoJSON data.
Brandon Biggs: Yes apparently it's just a blob in a SQL database.
Brandon Biggs: Does that answer your question.
Brandon Biggs: Each each each data sources its own blob in SQL.
Bryan Haberberger: So you're doing like you do your SQL query. And then on its way out you just to sort of like, parsing, you know right in between the shim to make sure it comes out as JSON?
Brandon Biggs: So when you when you load a map. It's parsing the GeoJSON data in real time.
Bryan Haberberger: Gotcha.
Bryan Haberberger: Thank you. That doesn't answer my question.
Brandon Biggs: I'm sorry.
Bryan Haberberger: I'm sorry, I'm sorry. I'm gonna hit you with the next one that might put a little more pressure. Have you thought about a non SQL solution in the background?
Brandon Biggs: Yeah, I've thought about it. If you have any good suggestions. Let me know, because one. One of the issues that
Brandon Biggs: That we kept running into was, you know, being able to separate out different data sources so like a lot of different people wanted to have, you know, different data sources is there like an easy way to do that without making like a ton of different tables in the database.
Brandon Biggs: And or how to do that scalably
Brandon Biggs: So this is definitely not. I'm not a big expert in geo databases. So yeah, any, any suggestions will definitely help
Bryan Haberberger: Yeah, I mean, I think it's a whole, maybe another conversation, we don't have to have right here. But yeah, I think I would definitely have a couple ideas.
Brandon Biggs: Awesome. Yeah, please get in contact with me.
Brandon Biggs: I'd love to talk to you more about that because it's a big issue.
Amelia Bellamy-Royds: Brandon, can I ask you a more higher level question. Not specifically about Audiom, but about audio maps.
Amelia Bellamy-Royds: Um,
Amelia Bellamy-Royds: What is like a reasonable amount of detail.
Amelia Bellamy-Royds: Because
Amelia Bellamy-Royds: With a visual map you can fill in lots of space and use other cues to emphasize what's important or not. But with these
Amelia Bellamy-Royds: exportable audio maps, are you able to really filter through extra detail, or is it best to keep it stripped down?
Brandon Biggs: No, you can definitely filter through a lot of detail. Um, now I haven't a
Brandon Biggs: Typically you'd look at it like the viewport. And so you do filter out the data in this particular chunk and explore that particular chunk. And so, say for example you're looking for
Brandon Biggs: One particular point you would use probably a list view rather than like this this particular grid view so
Brandon Biggs: There's three different modes that you can navigate this map in, there's a grid view where, basically, that's the default and it says you moving through you can hear the coordinates and you can hear the
Brandon Biggs: Like the polygons that you're over and then there's another one on that's more first person and you can you can navigate around like you're in a real environment, and then another one where you basically can view menu of all the different options and so
Brandon Biggs: You can definitely do a lot of detail, you can view as much detail as you want. Just like you can zoom in and out as much, you know, as you want.
Brandon Biggs: And you can you can view view it granularity very, very granularly, or you can go zoom out and see it in a more overview, you might miss some small features like say for example, there's
Brandon Biggs: You want to view things that are kilometer level. And there's some meter stuff you won't be able to notice those stuff. Unless you turn on some sort of setting.
Brandon Biggs: But you can go into a menu and see all the different items there. And if you know what you're looking for. You want to really quickly move to that list you can like, press the down arrow and
Brandon Biggs: Hear the different objects in the list very, very quickly, but this is definitely
Brandon Biggs: Some big, big maps or not or something. I need to continue exploring
Amelia Bellamy-Royds: So and Audiom, Does that sort of level of detail scaling out automatically or
Brandon Biggs: Yeah.
Brandon Biggs: I mean, so basically
Brandon Biggs: You can zoom in and out. Yes, with Audiom
Brandon Biggs: And I wouldn't right now it's built, it's, it's this particular this particular time it's it's particular particular the
Brandon Biggs: Put for meters. And so when you put in a GeoJSON object.
Brandon Biggs: You're moving by meters in the map and so
Brandon Biggs: There's some parsing of the coordinates that's done, and you're put into a sensible plane because you don't want to be hearing coordinates spoken out every time you move to a different square because that's just a little bit nuts.
Brandon Biggs: And so, so it does turn it into meters and but definitely it's not hard to to turn it into kilometers.
Brandon Biggs: And just trying to figure out a good user friendly way of doing that.
Brandon Biggs: For for the map readers.
Doug Schepers: Um,
Doug Schepers: Brandon, this is Doug, I
Doug Schepers: Are, are you expecting people to upload their own
Doug Schepers: soundscapes, what do you, what do you call a particular sound icon for like the looping audio that you're running for say a playground.
Brandon Biggs: Or yes, sound packs, so that's that's basically what I call them I'm
Doug Schepers: Sorry, I didn't understand what you said.
Brandon Biggs: Sound packs.
Doug Schepers: Sound packs. Yep. Okay. Are you expecting people to upload their own sound packs are you going to make sound packs available by default?
Brandon Biggs: Both.
Brandon Biggs: There's already one in there by default. Unfortunately, the current update on production build doesn't show it um
Brandon Biggs: But yeah, so there there definitely is a default, it should be there tomorrow, but you should be able to just go, you know, click and listen to the different sounds.
Brandon Biggs: So there is going to be one by default. And I'm going to continue building on it as time goes on, and hopefully I should have different sound packs that you can you can use by default, or you can
Brandon Biggs: Eventually, you should be able to upload your own and and and use those in your maps so like the playground for example uses a custom sound pack and
Brandon Biggs: If I wanted to use the sound pack for the map that I just made, I could do that.
Doug Schepers: So it seems to me, have you done, it seems to me that having familiar
Doug Schepers: Sound packs or having a familiar sound icon I'll use or, or soundscape icon for
Doug Schepers: Similar or
Doug Schepers: Like for restaurants, having the same
Doug Schepers: Thing. Seems like a useful orientation tool.
Brandon Biggs: Yeah, yeah, absolutely would be
Doug Schepers: Have you, have you done any studies to see the extent to which
Doug Schepers: I mean obviously when you're walking around in the real world, right, you're hearing. It's not every restaurant sounds like alike but you can identify them as restaurant.
Doug Schepers: Right, yeah. But it seems that in a constrained,
Doug Schepers: constrained
Doug Schepers: Environment like like this that it might be useful to have
Doug Schepers: The same sound icon being used.
Doug Schepers: And I
Doug Schepers: Wonder if you've done any studies that show
Doug Schepers: One way or the other, whether that's whether that's the case.
Brandon Biggs: Not really, the best thing I can think of is that the TEAM system that you saw earlier in my presentation was, did have a specific sound, set of sounds for different types of locations. So like a bar was particular sound in a, restaurant was a particular sound that looped
Brandon Biggs: But as for like a standardized sound. Uh, no, there's no standard auditory icons for
Brandon Biggs: For for these and I don't think there's been any studies to to determine
Brandon Biggs: What people would would recognize
Brandon Biggs: Most naturally as like a restaurant or street, for example, but one thing that you can depend on probably is, is that and there's been some studies on this particular fact is that
Brandon Biggs: There, you do have an analogical connection to the world. So if you hear like a sound of wood,
Brandon Biggs: Wood sound like that. That's a sound of wood and there's no other sound that that could be. It's like, you know, when you see a giraffe that is a giraffe there's there's no other thing you could really be
Brandon Biggs: Or you know if
Brandon Biggs: There's there's connections to the real world, that, that, that you can kind of depend on and so
Brandon Biggs: That that definitely helps with with creating these these maps so you can use these real world sounds in your maps and that makes it
Brandon Biggs: Much more
Brandon Biggs: Relatable so that people don't necessarily need to use a lot of cognitive processing to understand what you're trying to convey
Doug Schepers: I think that's, I understand what you're saying. I think that sounds right to me. But I also know that Foley artists
Doug Schepers: Create sounds that are nothing like real world sound, but for some reason they strike people as being the right sound, for example.
Doug Schepers: You know hawks don't sound like you hear hawks in the movies, right.
Doug Schepers: Yeah, they sound very different, but that that is the standard sound for hawk so Foley artists in sound, sound effects people use the sound for hawk for hawks, but that's not what a lot sound like
Doug Schepers: Yeah, they exaggerate sounds in order to emphasize key characteristics like the clop clop of the horse.
Brandon Biggs: Right. Yep. Yeah.
Doug Schepers: I
Doug Schepers: I see actually that
Doug Schepers: Amelia is pointing out a zoom issue.
Doug Schepers: We can talk about this offline. It's just, I'd like to
Doug Schepers: Better how how what that relation with the ship with the sound icon says
Brandon Biggs: Yeah. Yeah, absolutely.
Doug Schepers: Amelia has a question.
Doug Schepers: How do I get the gallery view zoom issue. How do I get back to gallery views the OH.
Amelia Bellamy-Royds: Brandon, that's for anybody knows zoom better than I do. Sorry for interrupting.
Doug Schepers: I apologize. No, you're not interrupting. I was dominating the conversation with with Brandon
Badita Florin: I think in the top left the top right corner, you have the view and against select between galleries, picker, or full screen.
Amelia Bellamy-Royds: Yes, it's come back on that Peter has this video I guess if nobody has video on it doesn't even bother showing the speaker names. Anyways,
Amelia Bellamy-Royds: Sorry for the distraction.
Doug Schepers: So,
Amelia Bellamy-Royds: Dp you have any other questions for Brandon, people who are maybe playing around with the examples.
Badita Florin: I wanted to ask him, and I put the link in the chat to with if he knows the game for which is a website that shows most all of the most used the key value pairs, no essential, you can find like top 10 or top 500 if you want the most use like amenities or the location. So you
Badita Florin: Would be an identified because this will be the most that you will find noise sample so it would be useful to create for them.
Brandon Biggs: Yeah, that's, that's good, that's good to know. So one thing we're going to be doing really, really soon is actually hook up
Brandon Biggs: Very similar to how TEAM did. We're going to hook up the whole entire Audiom system to OpenStreetMaps. So all the data and OpenStreetMap should be available if it's
Brandon Biggs: Got the correct labels in it and I'll be trying to parse those out into it and see exactly what it is. But that's something in our short list, we have a project that we're doing that right now so
Badita Florin: If you have a problem with like loading the planet and things like that. Tell me, I have somebody that they already loading the planet and processing good for vector tiles and raster tiles and I can, I could connect you
Brandon Biggs: Oh, that'd be great. Yeah, it's not not something I've investigated to too heavily going in and doing queries on OpenStreetMaps, not, not
Badita Florin: In all
Badita Florin: The planet is huge is like the extract
Badita Florin: The layers like 600 gigabytes or more
Brandon Biggs: Yeah. Yeah, so there's there's a good way to go and and and grab little chunks of that
Brandon Biggs: Yeah, let me know, because that's definitely something I'm gonna have to deal with.
Badita Florin: Yeah, and probably will need like a host yourself, if you don't have to store the data because post is kind of the best because you also have, like, oGIS with like the gis extension.
Brandon Biggs: Yeah, and
Badita Florin: It's really good. And there are some tools for automatically loading to post other things like that.
Brandon Biggs: But, yeah, yeah. Yeah, that's definitely something I need to. I need to investigate and I'll probably end up creating my own
Brandon Biggs: I know another company that uses OpenStreetMap and they made their own server for OpenStreetMap and and definitely probably going to have do that.
Peter Rushforth: Bryan Haberberger has a question.
Brandon Biggs: Yep
Peter Rushforth: On Gitter. I'll read it out. 'I have a question on granularity dof you see this being granular enough to help someone get around their favorite baseball soccer, football. Football Stadium, Stadium? Could it help you get to the vendor you want or the bathrooms nearby.'
Brandon Biggs: Absolutely, yeah.
Brandon Biggs: Absolutely. I've done it for a lot of conferences made these maps for several different conferences and an indoor spaces so that playground map that you saw you saw
Brandon Biggs: It, it can definitely help you get from from, you know, the bridge to the the slide man to the bridge to the stepping sounds. It's not not hard to do.
Brandon Biggs: So yeah, absolutely. And especially if you get more detail in there like, you know, putting walls and stuff like that. And you can tell people where to walk in and we're not walk and
Brandon Biggs: Yeah, absolutely.
Badita Florin: And also, I don't know. Do you know Overpass Turbo
Brandon Biggs: Not a big expert on OpenStreetMap. But not really, no.
Badita Florin: Okay Overpass Turbo is a service where you can do like queries you can wrote a query filter and you can select like okay, give me this and this and this so
Badita Florin: And so what you could do is like the user, you get the location of the user. And you will have like the bounding box of an area. It could be like
Brandon Biggs: Oh, yes. Yeah.
Badita Florin: And he's gonna, it can download any can export directly to you can have it like GeoJSON exported. So this could kind of help you to not create the whole planet to...
Brandon Biggs: I think that's probably we're going to do initially
Brandon Biggs: Is use use that
Brandon Biggs: Use Overpass turbo. Yes, I do. I do. I knew Overpass i didn't i didn't i don't i didn't know there was one with turbo but
Badita Florin: This is for
Badita Florin: Like visual. So instead of doing everything like this. This will kind of show you on the map and you can also style it and other things like that is more user friendly.
Brandon Biggs: I see. Okay.
Doug Schepers: Did you yeah
Doug Schepers: Right, what is
Doug Schepers: Overpass and Overpass Turbo?
Brandon Biggs: For OpenStreetMap.
Badita Florin: Is the API that you can use to access and download parts of, you know, for data, Overpass Turbo kind of
Badita Florin: wrapper around Overpass that allows you to create more friendly queries to to to query the database and instead of showing the data like the JSON response you you see like visually in a Leaflet map. I think you see visually the points that it is returning
Doug Schepers: Okay, thank you.
Brandon Biggs: Won't help me until it gets into an audio map but
Brandon Biggs: Yeah, I'll definitely look into that.
Amelia Bellamy-Royds: So to go back to the question of, Is this useful for
Amelia Bellamy-Royds: Navigating in places.
Amelia Bellamy-Royds: At this point are you working only on
Amelia Bellamy-Royds: Something that people can explore ahead of time, or are you connecting this up to something that could be live
Amelia Bellamy-Royds: On their mobile device as they're actually in a place
Brandon Biggs: Yeah, so, um, there's a couple issues there. First is, we need to build a mobile interface for this right now, if you have a keyboard, you can use a keyboard on your mobile device, but a lot of people don't usually bring that with them so
Brandon Biggs: We have to build a touchscreen interface for this and that's on our list of stuff to do. And then
Brandon Biggs: Once that's built, then yes, we're looking into, you know, getting positioning
Brandon Biggs: But typically, this is a pre pre trip planning for the next, you know, several months. This will be just primarily used as a pre trip planning tool.
Brandon Biggs: And or
Badita Florin: Indeed,
Brandon Biggs: Or any other thing where you were using map for that that's not necessarily that 'you are here' dot on on the Google Maps or whatever, as you're walking so that's that's the only I'm
Brandon Biggs: Pretty much the only major feature at the moment that you shouldn't you can't really do with this yet. And so, um, but, yeah, it's definitely on our list of things to do. Yeah.
Amelia Bellamy-Royds: Definitely. I mean, we have a couple talks of this the next session. So Sunday night, Monday morning, we have talks on one specifically on maps of indoor spaces and the others.
Amelia Bellamy-Royds: Ones are also talking about way finding and maps for in person accessibility. So it definitely all flows together.
Brandon Biggs: Yeah.
Badita Florin: I wanted to add that to in OSM, you have close to 1 million
Badita Florin: Locations that also contain information if that place is accessible for persons with wheelchair and thinking that some of the, of the users that
Badita Florin: Will use these maybe they are being also in wheelchair so that would be useful for them to kind of maybe they could know like okay this is accessible or not and
Badita Florin: Also the like opening up for around. I think half a million also points.
Badita Florin: But
Brandon Biggs: Yeah, absolutely. I think, I think one of the things I'm going to
Brandon Biggs: Try and do eventually is when you
Brandon Biggs: You know, hover over the box or whatever with your mouse.
Brandon Biggs: On the visual view, it'll give you, you can explore the properties and you can, you know, see
Brandon Biggs: If it has, if it's accessible or not. And then same with the
Brandon Biggs: The audio view, you should be able to see these different properties and see, you know, if it's accessible and you should be able to filter by items that are accessible or not.
Brandon Biggs: But unfortunately, it's not all the items but you know one millions a really good number. And typically
Brandon Biggs: They, you're probably not going to get a lot of really terrible sidewalks, if it's accessible to wheelchair users, which is nice for
Brandon Biggs: Almost everybody so
Badita Florin: And in OSM and also for the votes. I think you can there is tags to to say that if there is like a sidewalk on the left on the right, not many use it in Germany, they usually use it. But yeah, this is something to consider.
Brandon Biggs: Yeah, that's really important. Yeah.
Brandon Biggs: OSM, I don't even think gives a level of detail a blind person would really like to have
Brandon Biggs: A lot of people when when I've done studies they say that the most the features they want most are parked cars, the planters, the doors like where exactly the door is in the building.
Brandon Biggs: And poles, and bushes which are typically used in also the side of the side of the street that you're on and
Badita Florin: Probably
Brandon Biggs: Yeah, trees, yeah.
Brandon Biggs: So anyways, yeah that's that's like you were asking about detail before like that's kind of the level of detail that that blind people really want in a map. And so, yeah, you can get down to that level and that that's really the level that, people, people like
Peter Rushforth: Couple more questions in the chat and maybe I'll read it first 'An audio 3D preview of venue want to go
Peter Rushforth: To to get your bearings ahead of time.
Peter Rushforth: Will it be able to support 3D sound packs, not sure if that is a whole new file type or something.
Brandon Biggs: No. So how it works is
Brandon Biggs: We use the Web Audio API and in the Web Audio API you use
Brandon Biggs: The, the sounds are put into
Brandon Biggs: The coordinate in space and then you're the listener and you move around those coordinates. And as you move the sound changes it's position relative to you. And so like you here in the playground map on and so
Brandon Biggs: Are you really need is the looping sound and that gives you the 3D audio.
Brandon Biggs: That you need for
Brandon Biggs: I guess for any type of map. So I'm, I'm not sure that's exactly what you were asking, but
Brandon Biggs: It's really just any type of any type of sound that you can put into this map so
Doug Schepers: Just to clarify, you that your system takes care of the positioning
Doug Schepers: Yes, they just have to, It's already doing 3D positioning. And they just put in the sound that is going to be positioned
Brandon Biggs: Exactly.
Brandon Biggs: You can just attach it to your feature. Uh huh.
Doug Schepers: Right there may be a follow up question, which is, can you design. Is there any other way of designing your own 3D features or is this taking care of, like, I don't know what that would be. I'm just speculating that for some reason somebody might want to
Doug Schepers: For example, have level of detail. So it's not just the
Doug Schepers: It's not just the positioning, but it could be
Doug Schepers: How loud or faint, something is or how much detail you hear from a particular restaurant, like if you go to if you if you start off, you might hear chatter, just like voices and as you get closer, you might hear, for example, the clinking of silverware and glasses and plates.
Brandon Biggs: Yeah, so I'm
Brandon Biggs: At the moment, those that type of event is not there yet, but that's definitely something I want to add and probably won't be for a while.
Brandon Biggs: Because I want to try and get OpenStreetMap and all that kind of other stuff added in first. But definitely that level of detail is something I'm want to add
Brandon Biggs: Eventually, and so you could basically build your own virtual reality spaces. I'm using this map and do all kinds of granular support. It's definitely has the capability but
Brandon Biggs: It's not, it's not there yet.
Brandon Biggs: Okay, yeah, we just use the automatic positioning now.
Doug Schepers: Okay, cool. Thank you.
Peter Rushforth: And there's another comment says, I wonder if in the future if this could link with sensor data to provide live navigation based on real conditions. For example, if I'm walking in a sensor knows there's ice or snow bank is in front of me I could be a directed away from a hazard
Brandon Biggs: Yeah. Um, so
Brandon Biggs: Sensors, um, I don't know, very many that actually work.
Brandon Biggs: For for that kind of level of detail what what we are looking at is
Brandon Biggs: There's a
Brandon Biggs: Smith Kettlewell and several other companies are building indoor way finding apps that are basically use computer vision and inertial odometry to to
Brandon Biggs: Position yourself in the in the indoor space. And so we're going to be hooking up Audiom to that and and that should be able to kind of act as your, your
Brandon Biggs: green dot as you're moving through the building and you should be able to use both the Audiom features and the features of that way finding out to tell what's around you. But for sensor data. Yeah, that's not
Brandon Biggs: I guess, the closest could be maybe like real time information through satellites or something like that that that
Brandon Biggs: That you can get through an API.
Brandon Biggs: But yeah, I don't know. I don't know. Very many sensors are reliable enough to give you enough information other than the cane.
Amelia Bellamy-Royds: So one other question since you have a lot of
Amelia Bellamy-Royds: Web Map developers on the line.
Amelia Bellamy-Royds: Is there like is Audiom some open source are you
Amelia Bellamy-Royds: soliciting any contributions.
Brandon Biggs: Yeah. So currently it's not open source. Um, it's a
Brandon Biggs: Kind of a prototype commercial product at the moment. And so
Brandon Biggs: If you want to continue developing or, you know, see continuous development on it or use it in your project, just contact me and we can talk about it.
Bryan Haberberger: So I have one more sort of peripheral kind of comment here yesterday there was a presentation on GeoJSON-T, which was taking GeoJSON and adding time to it. If you ever thought about an actual GeoJSON extension to attach audio.
Brandon Biggs: So,
Brandon Biggs: I kind of have built my own GeoJSON format. If you look through the the guide on attaching audio.
Brandon Biggs: I've kind of built in my own property set
Brandon Biggs: And that is, that's what I use for
Brandon Biggs: For for determining the sounds so
Brandon Biggs: Once, once it gets a little more standard, then maybe we can, you know, think about adding an official, you know, quote, unquote.
Brandon Biggs: Audio or cross sensory
Brandon Biggs: Feature set and
Brandon Biggs: Sorry, property set, I don't know. I don't know exactly. I didn't see that presentation yesterday, what exactly they did.
Bryan Haberberger: So I mean it's it's simple instead of writing into properties. He just proposed a new property this thing called
Bryan Haberberger: 'When' and then the data goes in there, you know,
Bryan Haberberger: Okay. Style thing. Yeah.
Brandon Biggs: Okay, yeah, that makes sense. Um, I guess, the closest thing I did was I, for custom if you have a custom
Brandon Biggs: You're not using the the geography. So for example, the, the playground doesn't use coordinates
Brandon Biggs: Like the lat long coordinates. I have a custom thing that you put in that you use a custom coordinate system, and that's
Brandon Biggs: That then it just uses your coordinate system. So that's the closest thing I've got to it, but hopefully once more maps are created, probably in a couple years, we should have enough
Brandon Biggs: Standardization for creating an official set of GeoJSON
Bryan Haberberger: Yeah, cuz I know again just in my biases, humanities, because that's what I work in, there's just a lot of interest around attaching sound in space. It's just, you know, it's really for the, like I keep saying like poetry in the music studies kinds of people that are looking for that and
Brandon Biggs: Yeah.
Bryan Haberberger: I hadn't ever really seen a real extension that connected sound and space as one kind of, you know, wrapped up standard. Yeah.
Brandon Biggs: Yeah
Bryan Haberberger: It's interesting. I think you're working on something pretty unique and it's just, it's interesting. I said wondered if you thought about that yet.
Brandon Biggs: Yeah no, I'v e definitely thought about like how we represent buildings in GeoJSON and and you know how we represent campuses and other spaces and, you know, multiple layers and how you
Brandon Biggs: You show relationships, but I just kind of added in properties audio. I didn't really think too much about it.
Bryan Haberberger: To be fair that's what everybody else is doing. That's why we have these kinds of workshops
Brandon Biggs: Yeah. Yeah, absolutely.
Brandon Biggs: But I hope, I hope, like the Name attribute like that. That's one thing that's really important.
Brandon Biggs: Because as you can tell, like when you're moving to the grid. It tells you a name every single time you move through the space. And if you don't have a name. It's just going to say, you know, blank polygon blank polygon.
Bryan Haberberger: Yeah. And if you only have the English name then you make the rest of the world, man. You know, so the internal internationalization will become a part of that and all the sudden, your ability to just use a string disappears.
Brandon Biggs: Yeah, if you have a good method for
Brandon Biggs: Doing internationalization with GeoJSON and names, let me know. But typically names are actually
Brandon Biggs: Pretty, pretty darn universal unless you look at
Brandon Biggs: Country names. So, um, so I don't think it's that big of an issue but
Brandon Biggs: But yeah, it's definitely something to think about.
Brandon Biggs: Especially for countries and states.
Doug Schepers: If there are other questions.
Doug Schepers: Please feel free to ask them, but I think we're officially taking a 10 minute break before the start of the next session.
Doug Schepers: But
Doug Schepers: Everyone should, in 10 minutes we'll be starting
Doug Schepers: The next session, which is
Doug Schepers: Which is the map and to layer speculative polyfill and that's being facilitated by for MapML and that's being facilitated by Peter Rushforth
Brandon Biggs: Awesome. Thank you, everybody.
Peter Rushforth: Thanks, Brandon, very, very interesting and
Peter Rushforth: fascinating subject and looks like it's gonna be an awesome product.
Brandon Biggs: Awesome. Yeah, and get in contact with me. There's the
Brandon Biggs: Contact Form up here.
Brandon Biggs: And the feedback button, you can contact me.
Doug Schepers: I look forward to talking to more offline about this. Yep.
Brandon Biggs: Absolutely, alright, can you stop my screen share now.
Doug Schepers: Oh your screen has
Doug Schepers: Been stopped shared
Brandon Biggs: Sorry. Perfect. Awesome.
Brandon Biggs: Cause I'm not hearing it in my screen reader. Awesome. Thank you. Great.
Peter Rushforth: Okay, we'll reconvene with the channel open for eight minutes and then we'll reconvene
Peter Rushforth: Well, actually I could be a bit more ready but
Peter Rushforth: I apologize if it's got some rough edges but I'm trying to explain part two for the MapML proposal that I introduced last night or yesterday.
Peter Rushforth: And so here we go. I will share my screen.
Good evening, and good morning in this presentation, I'll give part two of an overview of the MapML proposal.
In part one, I explained why it is that I and others in our community believe we need maps to be understood natively by the browser. This is not uncontroversial and the presentations that proceeded and follow my own outline some of the challenges that lie ahead.
I then described the function of the proposed map layer and extent elements. I concluded by explaining the concept of Tiled Coordinate Reference System.
Which is our attempt to consolidate the terms and concepts behind spatial coordinate reference systems in order to make them implementable by the browser.
In part two, I'll talk about the details of many important parts of the MapML the proposal, as defined as far as I understand them. Your help is solicited to clarify or better define these things so that they can become implementable if they aren't already.
A location in MapML is a general term for anything that can be characterized by coordinates and zoom value. This concept could include simple feature geometries eventually.
In extent processing is conceived so far location is an event associated to the extent that is fired as the browser requires new content to paint. This can be a single tile, with its four
Sides and corners repeated such events will eventually cover the extent or it can be a rectangle, the size and position of which is calculated at runtime by the rendering engine such that the rectangle covers the entire extent.
That's described yesterday, during extent processing, location inputs are used to refer to end declaratively access location event properties, specifically the individual access values of the events location as well as positions that are relative to the shape of the event.
Also, as described yesterday, the extent itself is bound to the viewport of the map and the whole extent can be treated as a location event for some purposes.
Specifically when requesting content from services like WMS. The link rel, to which the input is bound by template variable reference, dictates the nature of the event that is generated
For example, the link rel="image" will generate a location event for a rectangle that covers the extent which is useful for WMS, while a link rel ="tile" will generate enough repeated tile coordinate events as tiles are required to cover the extent
Tile and image location events have sides and corners, which can be referred to by the enumerated position attribute.
Associated to the link rel="image" element in the above example we suit to two additional inputs with type="width" and type="height", respectively.
These new input types are required by the current proposal because I could not think of another reasonable way
To declaratively request the result of a calculation in the location input, such as for might be expressed as with equals top right minus top left
For example, which would obviously yield the width of the required image. So we propose to create the width and height inputs in order to declaratively access these properties of the image event rectangle that encloses the extent
Your advice is requested.
In the above examples. We're using input type="location" to see realize the parts that is the scalar property values.
Not the whole composite object of tile event coordinates which have a regular location and geometry as well as corners of mapp extents which are dynamic but known at runtime, which are pixel based but have variable width and height.
In the future we anticipate that it may be possible to rotate the map, in which case the calculation of the image or the set of tiles that covers the extent will be slightly more complicated for the browser engine, but not for the author. The above should still work, we believe.
The coordinates of a location may be expressed in any of the coordinate systems associated with a given TCRS although sometimes such expressions, don't make sense. For example, trying to describe a mapp extent with tile rows and columns, maybe slightly inaccurate.
We think locations should always have a zoom level associated to them, which is to say coordinates on a map should always have a scale.
It might be possible to eliminate the input type ="zoom" proposal if we find zoom as a an axis of the coordinate systems. Then we we would be able to serialize the zoom axis of a location event with an input type="location".
The location units attribute identifies by acronym the coordinate system that the location event will take place in, for example, units ="tilematrix" identifies that a location event at a tile and a tile matrix is being serialized
The location axis attribute is used to identify the scale or access value that should be returned
The location axis attribute can refer to any access of any associated coordinate system for the event. This doesn't seem to useful for a tile event where what you want to receive is the row or column axis. So why would you want to ask for easting of a tile event.
The value of being able to request the serialization of the location event of any access becomes clearer when you need to use the projected or geographic coordinates of a corner of the event.
You can do so by specifying the corner location you want using the position attribute with a value such as top left, bottom right, etc.
In this example, I'm showing the use of tile events to access an actual WMS which is very useful for WMS layers that don't have labels or polygon lines that can be visually disrupted by tile boundaries.
Note that while location units attribute refers to the tile matrix coordinate system and the link rel="tile" will generate a tile event
The corners of the tile are being serialized in Web Mercator projected coordinate reference system units or PCRS meters, because we have requested the relative position with the position attribute and the PCRS coordinate for that position with the axis="easting" value.
So far we've not described how the browser can avoid asking for tiles or content that don't exist. The first means is by specifying the min and max attributes on individual inputs associated to a link template.
The extent within which a link URL template should request content from the server is determined by the min and max attributes of associated input type="location" and zoom variable references.
If such limits are not provided or not understood on a per template basis, the client will look for extent scope values as provided as meta elements that I'll talk about in a minute.
If such values aren't provided or understood the client will use the limits to find for the TCRS as a whole.
I mentioned that we can provide semi custom extent from MapML documents by specifying the extent in a meta element, according to the proposed syntax shown. Likewise we can specify default document properties of MapML content such as projection, zoom and coordinate system.
Domain charting is a technique that tile caches, such as OpenStreetMap used to work around per domain connection limits established by browsers, in order to improve rendering performance.
In this instance, we've set up a hidden type input with the map specific shard keyword indicating that the browser should distribute the requests made against the linked cache in round robin fashion using the values from the associated data list.
Select inputs in the extent scope may be used to solicit input variables from the user. These selects could be displayed in a standard location. For example, in the layer control.
The value of the select made by the user. For example, the date parameter shown here, could be used to allow the map to query and display dimensional data such as Web Map Service dimensions.
HTML uses undifferentiated opaque URLs in various ways for different reasons which are reflected
In a few elements. The link href, element, the image source attribute and the a href
Form all represent different markup and reasons for associating document first to help keep separate concerns separate there's the link element.
Next, the source attribute is used to imply a composition relation between the source document and the linked resource. Finally, a href markup is defined to be a hyperlink and serves as the glue for the Federated nature of the web itself.
The use of links that we've already seen a little bit earlier, is as a layer reference in the layer source attribute
This usage of plain undifferentiated opaque URLs is vital to gain the advantages of simple sharing of information over the web. No API, apart from that HTTP, with it standard
Standardized media types should be needed to access map content. We hope that it will be possible for browsers to treat such URLs in a way similar to how they manage a URL to an image or video file.
In those cases, the browser synthesizes a simple HTML document around the resource and renders it
Is hard to summarize in a few sentences about how important this feature is so I won't try. I did a lightning talk about this idea a few years back, and that tries to explain some of the reasoning which I'll paste into the chat window now.
Next, layers may refer to externally defined legends using the link rel="legend" link relation
This is an extension of the supported link relations in HTML and reflects the use of legend links in WMS
It might work similarly to the rel="icon" link in relation link relation in HTML, but it might also need more specifying in this proposal.
If map widgets supported a legend control this link could be could work, be used by that be used by that control, if not the URL of the legend is available through the DOM, or possibly through another high level API.
Next, the link rel="license" link relation with associated title attribute indicates the licensing and attribution associated to the map content.
Peter Rushforth: So part of the part of the proposal is also for to implement alternate styles as sort of defined by named styles in the WMS specification and
Peter Rushforth: This would be done by a series of essentially alternate, alternate links that would be characterized by the style rel and the style that is the currently, that identifies the current style of base map would have the additional
Peter Rushforth: rel value of self style as shown here. So this allows you to simulate you know ,like in Google Maps, for example, satellite or map view or hybrid view kind of thing.
Peter Rushforth: So a key value of links in HTML is to refer to as a separate
Peter Rushforth: Content from presentation rules in style sheets and that is supported by the proposal for map for map content and style sheets relating to map content.
Peter Rushforth: And so there are small set of projections that are supported by
Peter Rushforth: The proposal currently and rather than asking browsers to fully support projection transformations
Peter Rushforth: We propose an alternate mechanism for negotiating projection through a link relation of alternate with a projection and an added projection attribute. So as a map
Peter Rushforth: Defined by the browser would have a defined projection. If someone tried to add a
Peter Rushforth: Layer that didn't match that projection. It could say, well, well, if the projection didn't match the map, it wouldn't allow it to be drawn, it would just be inert.
Peter Rushforth: But if, if the the incoming URL supported or content supported alternate projections, it would simply follow the appropriate alternate, and use that instead.
Peter Rushforth: So the there are, so link relations for meta, meta references, so tiles images and features, feature and image are essentially synonymous, but they
Peter Rushforth: Are it probably should be factored out into media types so, so consolidate the tile and extent or some other tile and map link relation and and distinguish between images and
Peter Rushforth: Features by media type
Peter Rushforth: And then we've implemented a kind of
Peter Rushforth: Link that allows you to set up like a zoom in relation or zoom out relations. So you can transfer
Peter Rushforth: The source of the layer from from one data source to another, depending on whether the user scrolls zooms in or out. And that, I think that needs to be has more work done on user interface and so on, but it seems to be pretty functional
Peter Rushforth: And then we have the query support for feature query and
Peter Rushforth: That way that it's set up by a link relation of query and it's fed by that by
Peter Rushforth: Inputs and so on for the location inputs and zoom inputs and so on, as per the content
Peter Rushforth: Thing, content requests and I'll describe
Peter Rushforth: That a little bit. Now one of the fundamental use cases of maps is to identify the properties of a feature of interest. This is supported in many standard geospatial API's both on the server and client.
Peter Rushforth: One of the key challenges of this use case is to make it accessible. What's shown in this short clip is a keyboard user manipulating the map extent and using the keyboard to interrogate the top layer at the center point of the map.
In the example a single feature element with a polygon geometry is returned by the server and drawn on top of the map, highlighted in yellow.
With no fill the properties of the feature in the response from the server is loaded into a browsing context, in this case the context is confined to a pop up balloon.
The OGC simple features model is the most successful standard in OGC history and is the backbone of the spatial data processing industry. And on the web GeoJSON is the most appropriate current standard for encoding it as text.
HTML is arguably the most successful standard in history. While it's not the intent of the proposals to suggest that all features in Maps
Should be represented as HTML elements. It's a natural step if we're going to create maps in HTML to create a browser renderable version of the simple features model in HTML that supports markup of the earth and objects in real and hyperspace
With the same technology and for the same reasons that human text is rendered as markup in HTML as styleable, accessible hypertext
The proposed feature element would be a natural DOM representation of GeoJSON content in that its properties element could contain arbitrary standard HTML.
The geometry property of the GeoJSON feature object would be represented a semantic markup with sequences of coordinates elements representing corresponding coordinate pair arrays in the GeoJSON property.
The native zoom or intended scale of the feature and its properties is represented by the feature zoom attribute
The coordinates are in horizontal axis space vertical axis order that is commonly referred to as x y order.
I don't refer to it as such because there are several associated coordinate systems in a TCRS and it should be legal to represent geometries in any of them and the coordinate system used for a geometry should be identified by the geometry CS attribute
The geometry content model is based on the standard OGC simple features model. And so it's not unlike KML, GeoJSON, shapefiles and many others.
It's intended to be fully selectable and stylable with CSS and linkable in a way similar to human readable text.
This demands a mixed content model for geometry coordinates. Sharing the simple features geometry model of so many formats means that there are many existing libraries that can be used or easily adapted to serialize it
Having a CSS selectors compatible component model means that CSS can be used to render. For example, tiled vector content in an efficient and standards compliant way.
Links embedded in content are the feature that sets the web, apart from all previous and future platforms. Web maps should use this facet of the web to enable Federation of services in the same way that HTML pages are federated, you link to the thing you want people to go see
The same should be true of web maps, a web cartographer should be able to link to the thing that should replace the layer or map the user is looking at when they activate the link.
Links while style level should hit the geo web with a predefined canonical style and accessibility behavior so that users recognize them as something they are expected to activate. Activating a link should replace the current browsing context
Or with the link to layer, or if the responses text HTML, it should open to a new top level browsing context or something like that.
The proposal started off with actual tile elements and they still respond to requirements for static map documents.
This might be a way in which custom renderers could be managed the developer could set up an event cycle for tiles, which they want to be responsible for the content.
Via the Canvas image or other thing, the browser could generate the tile for the developer handing them the painting surface when appropriate.
The browser would still be responsible for tile lifecycle management and could even create a local tile cache. So that once painted it could be reused.
When the link rel="image" construct is used a request for an image to cover the extent ensues.
This image is currently rendered at 00 of the map coordinate system. Because currently, we can't rotate our maps so the
Image fills the entire viewport in both dimensions. Generally, the implication of this is that a virtual image element is created.
And rendered at an absolute position in the TCRS and the image covers the entire viewpoint, possibly with hidden overlaps outside the box.
This could lead to a useful concept, arbitrary HTML, including SVG, of course, should be renderable on a map layer just as map tiles and features and images are
This would be a great help with cartographic communication as maps often have embedded metadata and this could be a natural and accessible way to include that.
A key feature of spatial data infrastructure is the ability to use in place without copying authoritative data.
This was what gave rise to OGC web services which will eventually give away to OGC APIs. I know that this aspect of the proposal is similar or related to that of Takagi-sans SVG map.js layer concept.
It key feature of the web is the ability to share stuff using plain undifferentiated opaque URLs that are intermediated mostly by web browsers.
The idea of sharing here is broadly defined to include, among other things, links between documents, links to media resource, bookmarks, separation of style from content, inclusion of script to extend behavior, etc.
The proposal began by specifying MapML as a vocabulary in micro XML based on the authors in evolving understanding of how to propose stuff for compatibility with HTML.
I now realize that I went a little too far in banishing all namespaces and XML syntax, we should have started with the XML namespace and syntax of HTML5.
I believe we can easily fix this by adding the HTML namespace to our XML serialization and the plan is to add an HTML parser compatible version when appropriate.
Just to be clear, the doctype mapping now and the MapML elements, shown here is not HTML parser are compatible today and we need to close the issue on that conversation before moving forward with the HTML syntax idea.
In any case, the core idea here is that, including map content should be about as easy as including a video, audio or image by using the layer source attribute, as shown to point to MapML content.
Peter Rushforth: So,
Peter Rushforth: What does it mean for a map to be accessible? Robert Linder and Nic Chan contributed to
Peter Rushforth: That discussion tonight and Robert has been helping to make the Web Map custom element more accessible. But there's more that needs to be done.
Peter Rushforth: And we welcome new contributions and contributors. My hope is that by allowing websites to represent the physical world in a standard way it will be a first step in enabling augmented reality for users.
Peter Rushforth: Much like what we saw with, a dream come true it earlier in Brandon's presentations. That is by defining standard geospatial markup that is understood by browsers you enable browsers to read the world which is appropriate support for users.
Peter Rushforth: While the declarative form is less powerful ie, not Turing complete, it isn't necessarily simple as we've seen,
Peter Rushforth: Simplicity, however, is a goal, and one that is intention with sufficient function.
Peter Rushforth: The ambition of the proposal is to define enough to be a solid and performant foundation or progressive enhancement, while not trying to replace the ecosystem of Geospatial web developers who create and use maps.
Peter Rushforth: So,
Peter Rushforth: Animation is obviously something that hasn't really been considered yet in the proposal, and that's something that we should
Peter Rushforth: Factor into future discussions, you know, as a thought process, as mentioned by Doug earlier or yesterday.
Peter Rushforth: That the thought occurs to me that we need to have the ability to create geospatial content using web browsers. And so that would lead perhaps naturally to
Peter Rushforth: Using, reusing, repurposing the input type, location to serialize the different simple features geometries in forms that were associated to map layers.
Peter Rushforth: I think
Peter Rushforth: The DOM API is of elements and attributes is already you know there's already pretty elaborate one specified here. But, um, is there is there more that we need to specify?
Peter Rushforth: That's an open question. I think what we need to do is to build a web map, web mapping applications using the polyfill, to examine exactly what what what
Peter Rushforth: Web developers will need to progressively enhance that
Peter Rushforth: And so could the DOM API as as sort of envisaged
Peter Rushforth: Be a foundation for you know version, what I don't know what version of open layers is that, but the next generation of open layers could be more readily and performantly and compactly built upon
Peter Rushforth: Upon a Web Map element and layer element. And what would that look like. I think the objective would be to make that easier and more maintainable.
Peter Rushforth: And how can we
Peter Rushforth: Build cartographic requirements into CSS, that's a conversation is very much
Peter Rushforth: Interested, we're very much interested in having. And three, could we add 3D rendering through something like a map with projection equals globe attribute. So that with GeoPose like started condition. So we're going to hear a bit quite a bit from the augmented reality community and
Peter Rushforth: The GeoPose community in particular could help
Peter Rushforth: flesh out this concept.
Peter Rushforth: So CORS, security, I don't, I'm not a security expert, but there's obviously lots of security implications and
Peter Rushforth: Layering content vertically in the browser from different domains and a lot of risks. So that needs to be thought about and designed and maybe you know we need to find out if there are showstoppers in there.
Peter Rushforth: So queries, queries could be met, like what, when we see the browser interrogating polygons on the on the map that could that's a CORS situation as well because you're receiving content from over the web.
Peter Rushforth: To be determined.
Peter Rushforth: And
Peter Rushforth: The HTML parser should be used because of the MapML document requirements. This seems to be a challenge.
Peter Rushforth: So when SVG is parsed and referred to by an image source attribute seems to be a similar scenario. So, as described. And so that's all I have for my presentation. I'd be happy to do a demo or or answer questions as we go along.
Amelia Bellamy-Royds: So I think we've had some questions coming in on the chat, so might be worth going through a few of those. Although I was also hoping you'd have turned to play around with your polyfill demo.
Amelia Bellamy-Royds: Yeah, I'm
Peter Rushforth: Up for that. So maybe talk a few
Amelia Bellamy-Royds: We've only got a small group so
Amelia Bellamy-Royds: People can probably jump in and unmute themselves when they like. But to start it off.
Amelia Bellamy-Royds: Fred Esch
Amelia Bellamy-Royds: commented earlier on, 'why are you reusing input element, isn't HTML input already complicated enough' and later, 'a problem with reusing element names that exists in HTML is it confuses validation tools that already have problems with
Amelia Bellamy-Royds: SVG and map mo will make that worse.' So Peter. You and I have had many conversations on this so you know my opinions on it, but
Amelia Bellamy-Royds: Do you want to kind of explain the thinking that led to the current proposal and what what can maybe be done to change things.
Peter Rushforth: If no so input. We're not reusing, we are using those we're proposing extensions to existing elements so
Peter Rushforth: The, the notion is that this is part of HTML. So every, every new attribute and every new element is a proposed new attribute or an element in HTML. So yes, that's, that's a challenge because of the expense and effort of doing this.
Peter Rushforth: But I believe that the HTML design principles suggest that you not create new markup forms where you know there is already an existing markup form
Peter Rushforth: For a given semantic so
Peter Rushforth: There, you know, there are lots of ways to think about that, for example,
Peter Rushforth: The
Peter Rushforth: You know, they didn't invent a new image element when they went to provide responsive design for, for images they they looked at, well,
Peter Rushforth: Where do images come from on the web and where do we mark them up in in the web and can we provide a new interface for that. That is
Peter Rushforth: Understandable in the context of images. And so that is the reasoning behind using, or targeting the input element. So yes, the proposal would probably benefit from
Peter Rushforth: A nested type of new type of input, like a button or something like that or like an application input that you could factor out axes into different elements and so on. But HTML already has inputs, and so like anything, you know, some people hate them was Brian Kardell still on the line?
Peter Rushforth: Some people hate them.
Fred Esch: Inputs are form elements, and working as an accessibility person getting developers to do something totally different and this other sense
Fred Esch: They would pick up attributes and it would be a nightmare keeping them from using wrong attributes, in the wrong place, and your validation tools are just going to go nuts
Fred Esch: So I really hate that idea myself but
Peter Rushforth: I did fork the HTML Parser and create a validator, you know, create the
Peter Rushforth: validator for the MapML vocabulary and
Peter Rushforth: You know, it's possible.
Peter Rushforth: I said, Of course it's not the only validator on on the planet. But, you know, change when you do make changes to a language you want to make them.
Peter Rushforth: In the right places. So
Peter Rushforth: Maybe that maybe W3C validation service has problems with embedded SVG.
Fred Esch: Coming giving you false negative failures and that'll just go nut
Doug Schepers: I don't think that we should
Doug Schepers: I don't think that we should
Doug Schepers: Predicate any particular enhancements on
Doug Schepers: What existing tools with on the, on the, on the flaws of existing tools. I know the SVG parser or the SVG feature or the SVG validation and W3C's validator is not very good. That's
Doug Schepers: That's a flaw in the validator not in the proposal now I it's not that I disagree with you. I'm just saying, Let's not say that just because one tool does something poorly that we need that we can't do something else. Right. We shouldn't be predicated only on tools.
Peter Rushforth: Yeah. So anyhow, my understanding of the HTML design principles is that you should look for a semantic entry point for for making proposals for changes for, you know, for
Fred Esch: Yeah, but an input is a form element.
Peter Rushforth: Yeah. So as I described the extent is a new type of form element so
Fred Esch: Extended user input?
Peter Rushforth: No, like a form. So a form is not a visible kind of construct so nor is extent extent is a is the the conceptual rectangle of the of the viewer's viewport and and for the map and that rectangle
Peter Rushforth: Is bound to the extent element and the inputs and and links that are children of that extent element. So the extent element provides our
Peter Rushforth: Scope. Let's say for for the the inputs and links that are in it in the same ways that way that the form element provides a scope for inputs and the action attribute the single action attribute to which it is directed you know the difference between an extent and a form, you know,
Peter Rushforth: I mean, there's an overlap in in in the idea, at least, but the differences are that the extent could have more than one URL to which it
Peter Rushforth: It makes requests, whereas a form is down to the action value.
Amelia Bellamy-Royds: Yeah, I mean, there is a coarse similarity in that form and form inputs are used to access a
Amelia Bellamy-Royds: Possibly infinite set of possible URLs by building up a URL from parts, based on the user's action and in that way they extendt to the inputs that in Peter's proposal
Amelia Bellamy-Royds: They are used to build up the possibly infinite combinations of URLs, based on the users panning and zooming up the map.
Amelia Bellamy-Royds: And so there is a logical similar guarantee there that you know the form inputs define the sort of parameters that a database query accepts and the extent inputs define the parameters that Map Server accepts
Amelia Bellamy-Royds: With that said, I see the logic of it, but I also very much agree with Fred's
Amelia Bellamy-Royds: Concern about just reusing a very overloaded element.
Doug Schepers: Yeah, I, I, even though I don't think we should predicate things on existing tools, we can't even get the input new input elements implemented for
Doug Schepers: For common things like, I don't know, where calendar is but there are several inputs that do not that are not interoperable. A implemented.
Doug Schepers: So several the new HTML5 input types are not interoperable implemented in browsers in that goes to that speaks to how willing browsers are to fiddle with these new existing
Doug Schepers: Tools. So I agree with Fred, in essence, although I
Doug Schepers: Yeah.
Doug Schepers: I think that overloading input at this point is probably asking
Doug Schepers: For a lot from browsers, even though I understand, logically, like there's a certain elegance to it, but it's, it becomes less elegant when you consider
Doug Schepers: How overloaded
Doug Schepers: The different input types are already. And again, what that does mean for not just parsing, but actually adding behavior to them.
Peter Rushforth: I mean, I, I'm sympathetic, but also would hark, hark everybody's attention back to the HTML design principles and like if there's a, you know, something that does what an input does, which is
Peter Rushforth: Provide a variable value
Peter Rushforth: To the, to a a server.
Peter Rushforth: Should you go around inventing a new mechanism for that in HTML, like I didn't feel like it was my place to say this is the new style of input that that HTML expects. I said, you know, we said inputs are what they use today.
Peter Rushforth: So, you know,
Peter Rushforth: Like unless you're freezing HTML forever.
Peter Rushforth: You know,
Doug Schepers: I think that I totally get where you're coming from. And theoretically, you're correct. But I really think you need to look at
Doug Schepers: The recent history of
Doug Schepers: Of extending markup within the HTML group and it's it there's a
Doug Schepers: There's definitely strong resistance to changing things about inputs at this point. So even though you're theoretically correct
Doug Schepers: And even though long term, it might be the better solution.
Doug Schepers: I, the extent to which you're changing the inputs makes them
Doug Schepers: Much more complicated to implement it might just be easier to try to find another mechanism.
Peter Rushforth: Yeah, um,
Peter Rushforth: Well, if I if another mechanism would fly better, I'd say, sure.
Peter Rushforth: No problem. We can redo that proposal part of the proposal, but I you know I
Peter Rushforth: Anyhow, I'm saying they're like inputs in forms and we need to maybe start the debate at that point.
Peter Rushforth: Not what you can't do inputs, because we hate them. Well, so inputs are dead.
Fred Esch: To change gears, um,
Fred Esch: Google Maps uses a zoom level and a center point. And it's pretty simple. What, why do you have a different way of doing your, defining where your map is because they're, they're using raster tiles.
Peter Rushforth: Okay, well that was in part one, Fred. So yeah, we, we, we have the same simplicity we have map zoom equals whatever lot equals whatever long equals whatever and and that's your starting conditions for the map.
Fred Esch: Okay, I thought I saw that. But I thought today, you were talking about corners and all sorts of stuff.
Peter Rushforth: Well, I mean, I'm talking about how the logic for getting content into the map works. And that's a pretty important when you know these maps are, you know, hundreds or thousands, thousands of gigabytes. Ivan, you've got a question.
Doug Schepers: Ivan? Are you muted?
Peter Rushforth: Maybe you have to acknowledge the end in this this thing, I can do a demo. If anybody wants to see that.
Doug Schepers: He doesn't seem to be muted, but we can't hear you Ivan.
Peter Rushforth: Yeah.
Doug Schepers: Oh no, he's gone. Oh no, he's not there he is.
Peter Rushforth: Your microphone is not working.
Doug Schepers: Oh,
Peter Rushforth: You want to type it in the in the chat? Type your question.
Amelia Bellamy-Royds: No. Still nothing.
Amelia Bellamy-Royds: Okay, we'll switch around. Bryan, you mentioned you had some questions.
Bryan Haberberger: And I yes I do have a couple. So, stop me if you feel like I'm taking up too much time. Um, is it okay if I share my screen just super fast.
Peter Rushforth: Mm hmm.
Bryan Haberberger: So you're probably predicated to this question. You probably know it's coming. So a lot like what you just said.
Bryan Haberberger: Um, so we came across a lot of the things you know what a
Bryan Haberberger: Primitive what is something that needs to be known. You know what type of things being saved by the form. Who's the person creating the form. What's the motivation for it. That's a very web annotation thing. Don't worry about it.
Bryan Haberberger: Um, but really specifically was being able to provide context. So I saw that you had a lot of link sort of primitive things and one of those very early slides you showed
Bryan Haberberger: And I was wondering if you have considered one of those for supplying schema, sort of like an already RDF, XML style schema or or even like a JSON-LD context like this.
Bryan Haberberger: That's, that's my first question.
Peter Rushforth: Out of my scope of extra expertise, frankly, Brian.
Bryan Haberberger: That's okay. I was just curious because all it is is just, you know, here I have an array of them, which is a whole nother thing to charge to talk about arrays as attributes and you can see here
Bryan Haberberger: Like you're proposing your, you have to implement some kind of syntax and take away some kind of delimiter from the user to make sure we can parse these things correctly.
Bryan Haberberger: And that just turns into a nightmare. So I'm really curious how you're going to express hierarchy in those coordinates which is my second question.
Peter Rushforth: Well, there are arrays of coordinate element coordinates elements you know so. Oh.
Bryan Haberberger: I see. So you're going to use the element itself.
Peter Rushforth: Yeah, so the coordinates element is the the the deepest child. Well, I mean, I guess in my proposal you would be able to wrap spans around coordinates and
Peter Rushforth: A
Peter Rushforth: A
Peter Rushforth: Hyperlink anchors around coordinates or around, you know, parts of coordinates.
Bryan Haberberger: Gotcha.
Peter Rushforth: So,
Peter Rushforth: So, yeah.
Peter Rushforth: The coordinates are basically
Peter Rushforth: The lowest level element and you could so you could style different rings differently or multiple times, I guess.
Bryan Haberberger: I see, I see. So it's not. Can you like nest a coordinate element in another coordinate
Peter Rushforth: No, no, no.
Bryan Haberberger: No.
Peter Rushforth: So no, it's based on based on GeoJSON, and
Peter Rushforth: All of these, these
Peter Rushforth: Formats of this similarity that way.
Bryan Haberberger: Good. That's good answer. That's what I was looking for.
Bryan Haberberger: Good. So then, I guess what I'm no. Can you still hear me I push the button.
Bryan Haberberger: Yeah, yeah. Okay.
Bryan Haberberger: So when you when you did that.so. This is something I just have no knowledge about when you did that doctype MapML was that sort of your way of telling the browser developers. I'm using that markup language schema, is that how at that level, you were like, hey,
Peter Rushforth: So the, the, the, the purpose of the doctype MapML and concept is
Peter Rushforth: To. It's like the media type. So it's a second second level of processing that beyond the media type. So when you have when you exchange messages on the web, you have the content type and the accept headers to
Peter Rushforth: Dictate you know media type metadata. So you could say text HTML is this text MapML is this response to a source attribute required. Okay. And because that's, you know, layer element, it gets drawn
Peter Rushforth: Drawn by the by the render in the in the coordinate space that is set set up as a link.
Peter Rushforth: But when you when you
Peter Rushforth: So just to fit into the HTML parts or, you know, the HTML elements of void syntax and some of them are, you know, there's an idiosyncrasy to HTML that
Peter Rushforth: That
Peter Rushforth: You would have to follow like if you use inputs. For example, if you extend inputs. They are void element. So you have to have a have a not, no closing tag.
Peter Rushforth: For example, and
Peter Rushforth: So a doctype MapML would be like it mode so that when you when you loaded it when you load a an SVG off a off a SVG URL, you've got that SVG media type to guide you. But when you're loaded off a file system. There's no, there's not necessarily the right
Peter Rushforth: Media type and that's their map to different file types and and stuff like that. So the browser would
Peter Rushforth: Needs to have more clues like that are in the document. And so, I mean, we haven't closed the, closed the loop on this conversation with Simon and the what way experts, but I'm still pushing for a doctype MapML as a as a sort of
Peter Rushforth: A second tier of media type indication
Bryan Haberberger: Yeah.
Bryan Haberberger: You know, yeah, that makes great sense. I just, you know, I've been developing for 10 years doing doctype HTML at the top and never asked anybody why I had to do that.
Peter Rushforth: Yeah, I think it's, it's like I'm processing mode for the partner Simon could definitely give you a couple of our discussion on that. But, um,
Peter Rushforth: You know they don't like to change the parser are at all.
Peter Rushforth: And you know even adding new elements, I guess, makes them nervous. So adding new modes is like a double nervous. So anyhow, we have to walk that line.
Bryan Haberberger: Yes. So my last question is a softball, I'm just asking you to point me to the right place.
Bryan Haberberger: At some point, you had to write and using you know feature tag. Here's the vocabulary for that feature tag or something, you know, some description about it somehow. Where is that so I can sort of kind of get a better idea about the exact definition of elements you use?
Peter Rushforth: Yeah, so that's the MapML and now specification which is evolving,
Peter Rushforth: let's say,
Peter Rushforth: You know my
Bryan Haberberger: all the good ones are. That's how we do it for things open, open minds.
Peter Rushforth: So in the Maps4HTML community group on GitHub. I'll paste it into the chat here.
Bryan Haberberger: Yes, please.
Peter Rushforth: And I yeah
Peter Rushforth: There is the MapML repository, and you'll find a link to that to the spec for that. And in there like there are some things in there that are probably a bit confusing at this point because it's
Peter Rushforth: It's a, you know a challenge for me to do everything. Now, keep it up to date. Robert Linder is keeping me like
Peter Rushforth: On track here, because he's got he's got a very sharp eye for detail so it'll probably come up to speed, again soon. But
Peter Rushforth: You know, we're talking about the proposal in general here, not specifying at the moment. So maybe I'll just do a quick demo. If there's any more time.
Amelia Bellamy-Royds: Yeah. Why don't you take the last five minutes, unless anybody has urgent questions.
Fred Esch: Do you have any support.
Fred Esch: For guests.
Ted Guild: From earlier. I'm sorry I
Fred Esch: in MapML.
Peter Rushforth: What was the question. Sorry, say again.
Fred Esch: Do you have support for gazetteer, geographic names.
Peter Rushforth: Like a. Is that a, it's a kind of a query interface right
Peter Rushforth: Oh no no no support yet. Oh, specifically anyway.
Peter Rushforth: So,
Ted Guild: Here, if I had a question.
Ted Guild: For the
Peter Rushforth: Yeah.
Ted Guild: Let me scroll back and find it.
Ted Guild: The use case for not specifying map view as center, zoom, lot of people want to specify maximum map bounds you to display at most, 180 degrees, I'd love to
Ted Guild: Get those as MapKit does.
Ted Guild: Sorry.
Ted Guild: And a
Ted Guild: Again-
Peter Rushforth: A best case for not specifying Matthew as a center zoom is a lot of people want to specify maximum map bounds. As a starting condition, you mean?
Amelia Bellamy-Royds: So there was the option of
Amelia Bellamy-Royds: Setting b box, bounding box dimensions, instead of just the center point. And actually,
Amelia Bellamy-Royds: Takagi-san also was commenting on how bounding box can be a lot more flexible than a zoom levels, which only have, you know, integer options, but with a vector graph, you don't need to restrict yourself to the tight levels, you can have continuous zoom
Peter Rushforth: Yeah, so, um, we have the concept of extent for for a layer so you can set the set the extent, for a given layer and then I think that you could simulate like zoom it like a b box starting condition by zooming to that
Peter Rushforth: Extent like having a zoom to extent.
Peter Rushforth: Thing is that good enough that give me a thumbs up or not.
Peter Rushforth: So let me share. And I don't know if it where we're at in the
Peter Rushforth: In the evolution of the polyfill will help us.
Peter Rushforth: Share this guy.
Peter Rushforth: So this is the polyfill
Peter Rushforth: And it's based on Leaflet and get, you know, a modified Leaflet. Well, not too modify it actually is pretty raw Leaflet. But we extend our, our thing and it allows you to
Peter Rushforth: Yeah, so starting conditions are like currently based on lat long zoom. But, you know, the GeoPose and so on. They have they've got some
Amelia Bellamy-Royds: Peter can you cut your video, we're getting your audio breaking up.
Peter Rushforth: Cut my video, yeah. Can you hear me? How's that.
Doug Schepers: Better.
Amelia Bellamy-Royds: Much better.
Peter Rushforth: Okay, so, so
Peter Rushforth: If I just, we've got a little menu setup here. So the debug mode.
Peter Rushforth: debug mode.
Peter Rushforth: It shows you the extent of the layer in a outlined in red, and it shows you the tile, the tile grid and
Peter Rushforth: And so we could we, we have we have the properties of, the properties of the map and
Peter Rushforth: Our setup.
Peter Rushforth: Let's see.
Peter Rushforth: So the
Peter Rushforth: The properties of the map of each layer has an extent property. So you could have them.
Peter Rushforth: So that the the coordinates of the corners of the extent are stored in that in that
Peter Rushforth: Toggle debug mode just reload.
Peter Rushforth: There right, f12 and I select the elements, the
Peter Rushforth: Layer itself has
Peter Rushforth: An extent property.
Peter Rushforth: That
Peter Rushforth: That has the coordinates of the, of the, the layer.
Peter Rushforth: In
Peter Rushforth: top right and bottom left, and all the different coordinate systems associated to the TCRS and so
Peter Rushforth: Like, I think there's a 'zoom to' function built into leaflet and we copied it into the the map element as an API type of thing. So you could calculate calculate the center point of that bounding box and zoom to that.
Peter Rushforth: We haven't got the zoom to layer thing, but the plan was to fit that bounding box at the at the, the maximum possible zoom,
Peter Rushforth: Onto the map as as as possible and then zoom to that. So that was sort of like the bounding box starting conditions, but I mean, then you would have to save the starting conditions as lat long zoom in the current, current
Peter Rushforth: Proposal, so that's sort of the best answer I can give you. Ivan?
Badita Florin: I'm not sure, can I intervene a little
Peter Rushforth: Sure.
Badita Florin: So because like this is in the beginning, you will zoom to a specific location, let's say, a city or a neighborhood.
Badita Florin: But I'm not sure if the question was more okay maybe indirectly, let's say New York, zoom in Brooklyn and the maximum extent that you can zoom out to be the surface of the city of New York, you cannot go to city or country level. Is this about or?
Peter Rushforth: Oh, I see. So you couldn't zoom out past that.
Badita Florin: This is use cases for like cities or other things like that where you don't want users, maybe to go
Peter Rushforth: Yeah.
Badita Florin: And I said I shared the link
Badita Florin: In the chat for like an example. What I'm doing now for a city in Greece for an event where you can you have a maximum zoom, because he would be unuseful for them to zoom out more because it's just for a city.
Peter Rushforth: I guess there's no declarative means for setting that up right now. I mean, we'd have to think about how you could do that using the DOM API for this thing. So like
Peter Rushforth: Like check the properties of lat long zoom and compare them against compare them against your preferred thing and prevent that event from occurring.
Peter Rushforth: I'm not sure if that's a, is that a progressive enhancement or is that something that should be built into the, the declarative function that's a, that's a question not a statement.
Peter Rushforth: So yeah, just quickly, I've got GeoServer setup. So we've got, like, if you we've got a version of this built into GeoServer. So if you if you've got different
Peter Rushforth: Data sets and GeoServer, you can serve them, it'll serve them in the in the MapML projections that you that you specify
Peter Rushforth: So there's WGS 84 and the projection negotiation deal was we take that WGS 84 layer and we drag it onto the map, which just adds a layer element to the to the map DOM.
Peter Rushforth: And but it's now it's got the curved curved shape of the Lambert conformal conic. So it's not doing any projection transformation, while GeoServer's doing all of that stuff so that the server side content management systems are still, still whatever they are, but
Peter Rushforth: And so that's, um, that's the projection negotiation deal, and it'll do you know like I mean it works pretty well for for
Peter Rushforth: WMS and tiles and stuff. I mean, it's a basic system.
Peter Rushforth: And
Peter Rushforth: So, so what I was showing you earlier was the ability to query it at particular locations.
Peter Rushforth: And that that is actually the GeoServer is returning a MapML document with the map feature in it for the shape of Texas and
Peter Rushforth: And the properties are shown in a Leaflet pop up.
Peter Rushforth: And I guess in lots of modern web map frameworks, they've they've gone from pop ups to pull outs or whatever. So one of the challenges is to think of
Peter Rushforth: Okay, well, how can we allow a web developer to say, I don't like pop ups I wanna, I want to have a slider or a slidout kind of thing or a slide up
Peter Rushforth: That kind of thing and capture the event and and and do that for themselves, so that the web designer has their own ideas of how this should be handled or what should be pulled out of it.
Peter Rushforth: And I think Amelia and Brian were both referring to how difficult a challenge that is um, but I get there should be like a default
Peter Rushforth: Like the user agent would provide a default way to do that. And if you want to capture the event and do it yourself you while you have the you have the the feature data to do it with and
Peter Rushforth: So yeah, it's on, there is that is available on GitHub as the Web Map custom element.
Peter Rushforth: And in the end, there are there are releases of it and we should probably get a new release out. So, but you can just, there's no it's not on NPM. You just have to download it and unzip it and
Peter Rushforth: And it should work. You should be able to use it from a web directory. And so, yeah, you don't have to have a geometry associated to a query response. You can just get it an HTML file back like you do here and the the remote document is a you know simple view source type of document.
Peter Rushforth: And
Peter Rushforth: You can
Peter Rushforth: You can add layers willy nilly to this thing. If you want if you so desire. I mean, there's a limit.
Peter Rushforth: But so, so a layer is like Ivan said everything's layer. So a layer could contain templates, so a layer can't contain other layers but a layer can contain
Peter Rushforth: As many templates and as much content as you want to put into it and those and those templates should be
Peter Rushforth: While they are part of the DOM, I guess, and they should be, you should be able to change their z-index, you know, by moving them around by changing the z-index and so on. Same way that you do in any other part of HTML and SVG.
Peter Rushforth: And this is, apparently Robert Linder was showing you that I've broken the Back button on this.
Peter Rushforth: On this web page and it needs to be updated. But I was trying to just sort of bookmark bookmark pages so that you could
Peter Rushforth: You know when you copy the when you copy to a location on the page, you would go, you could go send that bookmark back to somebody and it would go to that point. And it's not doing it. So it's broken, and I broke the back pocket button. But anyhow,
Peter Rushforth: If that wouldn't be built into the math on it said itself. It's really a part of the part of the
Peter Rushforth: HTML authors responsibility, right, because you could have five maps on one page and which one would get access to the URLs, an open question. Um, so what else is there to show. Again, the MapML extension to Geo server, you can you can set it up so that,
Peter Rushforth: You can set it up so that
Peter Rushforth: You can serve it as tiles are a WMS. So, for example, for
Peter Rushforth: The image, the imagery layer here, North American imagery that would be good to know. Hang on. There's
Peter Rushforth: Edit this layer.
Peter Rushforth: So publishing so
Peter Rushforth: Publishing there a MapML panel and you can say use tiles and that will just use WMS requests over the thing as tiles or you can actually set it up to cache the tiles. So if I I have particular like, OSM tile and WGS 84.
Peter Rushforth: And, and, you know, CBM tile. I can set them up and it'll, it'll, it caches
Peter Rushforth: These things on the first use automatically
Peter Rushforth: And then so when I go to Layer preview these tiles for the imagery, it should come in in tiles
Peter Rushforth: Yeah, you can see the file showing up. Well that's being done by the GeoServer on the back end. So these are all this is like geospatial content management systems could be equipped
Peter Rushforth: Really quickly to start pumping out HTML MapML and, you know, we would have like a content universe on day one of this thing, appearing in browsers.
Peter Rushforth: So that's my pitch.
Badita Florin: Can ask questions regarding, regarding like I don't know if you know turf.js that all go, which is you can do a lot of transformation and other things like that. And they have things like buffer or the
Badita Florin: This would be something that maybe probably not now, but in the future could be
Badita Florin: built in. So the idea is if you would have different points that they would have different values like population of cities or the things like that, they could do scale based on that, like using a buffer or for selecting elements inside like 300 meters videos.
Peter Rushforth: Um, I think that these could be like managed by the API. You know, like, so you could have like developers, the developer ecosystem still should,
Peter Rushforth: I mean, the browser engine can't do everything right.
Peter Rushforth: So, so the developer ecosystem should be
Peter Rushforth: Just facilitated by by the proposal, not replaced. I mean, I guess there's a certain amount of rendering responsibility and so on, that could be replaced and it would probably be welcome. I don't know for sure. Ivan and
Peter Rushforth: Andreas, but
Peter Rushforth: I, my sense is that that the rendering is is a full time job.
Peter Rushforth: Um,
Peter Rushforth: So yeah, I mean,
Peter Rushforth: I would, I would encourage like progressive, progressive enhancement is the way I described that I don't know if that's the right term, but having an API, upon which you can build is
Peter Rushforth: Is is a core value.
Peter Rushforth: So I guess that's, that's about it, unless people have more comments. I'm happy to take questions. I'll try and go through the chat if there are questions in there and comments and respond
Bryan Haberberger: I do have one last quick one. If you're alright with it.
Peter Rushforth: Yeah, please.
Bryan Haberberger: So something that I have a ton of trouble within Leaflet is like say I've got a bunch of points, um, there's no like way for me to say I only want to see those points that have this property.
Bryan Haberberger: So I saw you like doing some filtering with layers there because you were doing the checkboxes.
Bryan Haberberger: Do you think you'd be able to sort of filter, you know, hide/show features buy properties, kind of thing.
Peter Rushforth: Well, so I think that that is like, well, that was the
Peter Rushforth: So that was
Peter Rushforth: The
Bryan Haberberger: You know, I could see that being a well, when we have the API that's the kind of things we'd like, you know to be able to stick into the API. I'm just curious because that's something that you just really cannot do right now with with like the MapBox and Leaflet stuff that's out there.
Peter Rushforth: So, well, it's, I don't have a magic bullet. But let me share my screen. And so this this file here was the has a select element in it. And I think this is an area that needs more research and and collaboration.
Peter Rushforth: Um, yeah. So in this in this select the, it's called the year select and I've got a bunch of ArcGIS, WMS layer IDs separated by commas, because that's their, that's their way of parameters using their
Peter Rushforth: Their WMS is by layer IDs and then I tied that you know those layer IDs on the server. This was set up after someone are already set up this data service.
Peter Rushforth: So, though they said, Okay, well, this is the list of layer IDs that in, in, in that order that constitute 1867 and so on. And then as the
Peter Rushforth: As the, you know, the user can query that
Peter Rushforth: Can query that that file, by clicking on the control
Peter Rushforth: In the, in the, in the layer list and they get a different query against the server through, you know. So now whenever I'm panning and zooming I'm looking at 1874 right so it's looking at
Peter Rushforth: At that, as defined by the server. So, I mean, I think there's there's probably a lot more to this but anyhow.
Badita Florin: And the different values represent to each to count, to each state, or is the order like the layer index, this is the middle
Peter Rushforth: Yeah, so like layer 17 is the labels and layer 12 is the is, I don't know, Ontario, or the polygons and other things the lines that kind of thing.
Badita Florin: But if they would be like on over Ontario that would be another layer of like showing the trees, it would be rendered before and after, or it could be this set or is like, how is the engine render it, is it random, or?
Peter Rushforth: It was like in terms of the DOM order.
Peter Rushforth: So if you add another layer element on to the into the map element as a as a child, it just draws on top just like
Peter Rushforth: So well, not like, well, just like the image maps.
Badita Florin: Right. So, okay.
Peter Rushforth: The image map, image element draws as the base, base layer in the areas draw on top of it. So they're in DOM order, I guess.
Peter Rushforth: Sort of like a layer elements in this. And so by default the layers in this thing are drawn in
Peter Rushforth: Document order down the page. But let's say you want it to have like a GIS solution where you have the layer stacked up on on on the left or something like that.
Peter Rushforth: You should be able to shut the controls off, and do your own make your own controls using HTML, you know,
Peter Rushforth: Just like you can do with the video element right, you receive events to control and stop the video. Well, you should be able to get these events off the map element and and do the same thing. So you just get a boost in performance and so on, off the rendering engine.
Bryan Haberberger: Yeah, that was a good analogy. Thank you.
Bryan Haberberger: My pleasure. I hope that helps.
Peter Rushforth: I mean i i think this is a this is just an area we we played with a little bit. I think there's, you know, that's why inputs,
Peter Rushforth: Fred's probably not on anymore. But this why inputs could be like a useful thing to work with here rather than reinvent,
Peter Rushforth: Even though everybody hates them.
Peter Rushforth: Let's see.
Peter Rushforth: Yeah.
Peter Rushforth: Satoru-san says 'In SVG map.js, I made this kind of custom form functionality free to free to design in the web map, assigning it all to each layer.' Yeah, so that's sort of the same approach, but we haven't played around with it too much here.
Peter Rushforth: Other than to say that controls, you know, from the controls that are oriented to to the user interface or directed towards the layer control and controls that are location specific and zoom specific and width specific are getting essentially they're
Peter Rushforth: Invisible
Peter Rushforth: And yeah, so we would, we would really love you to play around with this and give us comments apologize for bugs and stuff. It is my fault.
Peter Rushforth: So, we will will will iterate, though.
Bryan Haberberger: The most important thing to take away is your direct contact, then
Peter Rushforth: Yeah.
Amelia Bellamy-Royds: Yeah, and all the MapML stuff, both the spec and the polyfills are on GitHub. And there's open discussion in the community group.
Peter Rushforth: So, Ivan
Peter Rushforth: Ivan said ideally the DOM scripting interface would have the same functionalities as say, Leaflet, OpenLayers, so stuff like custom tile buffers
Peter Rushforth: Could be in. Yeah, absolutely. So we would like to. Yeah, for sure. For the sophisticated stuff that you know cutting edge
Peter Rushforth: Let's just leave it to the ingenuity of web developers to fill in. So yeah Leaflet the core model of Leaflet, like the core and extension model of Leaflet is what
Peter Rushforth: Is sort of inspiring in terms of
Peter Rushforth: In terms of what should be in versus out. I mean, there's stuff that you even in Leaflet as as as cut down as it is, as as core as the core is there still stuff that you know the HTML guys are not going like.
Peter Rushforth: So we gotta, we gotta think think hard about what what is in and what is possible.
Amelia Bellamy-Royds: Okay, we're about ready to wrap it up. Then Peter
Amelia Bellamy-Royds: I think we've already gone well over time.
Peter Rushforth: Yeah, sorry.
Amelia Bellamy-Royds: Well there's lots to talk about
Peter Rushforth: Yeah.
Peter Rushforth: Okay. Well, thank you very much everyone
Peter Rushforth: Thanks a lot for going through this with us.
Bryan Haberberger: Thank you, Peter.
Badita Florin: Thanks for organizing
Peter Rushforth: Great.
Amelia Bellamy-Royds: And we'll see you all next week.
Amelia Bellamy-Royds: Same
Amelia Bellamy-Royds: Times and days as it was this week.
Amelia Bellamy-Royds: You all have the agenda.
Peter Rushforth: Great.
Peter Rushforth: Thank you and goodnight.
Amelia Bellamy-Royds: Or. Good morning.
Bryan Haberberger: Seeya, everybody.