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.

Client-side Mapping APIs are JavaScript libraries that allow website developers to create more customized map viewers.

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.

Tools reviewed.

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

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.

Next is the Terms of Use button, which is in the bottom right hand corner. After that, comes the View Larger map button, which is in the opposite corner, in the top left.

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

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

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:

Brandon Biggs: There you go.

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 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 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, 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...

Badita Florin: Of each each you client to do it in the most of the downloading and then you just have some JavaScript that will process and yeah

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.

And boy,

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.

Which is used to associate one file with another in various relationships, such as stylesheet or JavaScript inclusion.

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

Moreover, since there is a negligible impedance mismatch between this and GeoJSON geometry model, styling and rendering is simplified and will work with any JavaScript process that already uses GeoJSON.

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: As currently envisaged a map document would not have executable JavaScript in it. So I mean that's maybe one saving grace, but

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: Essentially what we have is forms and we use HTML form to build into an API and a database so that you didn't have to write JavaScript to do it.

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 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: Like to do that in Leaflet. You have to write a custom JavaScript function that goes over every layer and find the features and read the properties out, which is an extremely expensive function as you can imagine.

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.