slides now yes can see the slice so let's start the talk now thank you okay hi I'm William I'm a software developer and today I'm gonna be talking about data visualizations and maps with JavaScript so I'm going to show you something similar to this today it's it's blurry and but I'll show the real thing later and there are problems with mine I'm not sure if I can you can see oh gosh I don't know if can you see we still see the cuz the slide with the market after with the smack manually [Music] honest I think that's better so I can yes I can I can now switch now you can see so if you look like on one map fuck you see I'm not sure I've done something wrong or that box does this like the D is cut off in New Zealand I'm sorry about this like write down some notes inside my slides it's because this talk has been postponed quite a few times I might forget I might forget what I want to say in the presentation [Music] here's another another interesting thing to look at if you can't see it it's fine [Music] here it is zoomed in there's there's a problem here with a data visualization given by Channel NewsAsia like this there's supposed to be something here but there's none and I think it's it's just a mistake I think I mean they probably didn't really care about it I guess so what I want to say is that every everybody makes mistakes and I'll be I guess this was done using d3 I could I could check now but I have to but I guess it's done I'll talk about d3 again later here is where a lot of these realizations you see now are taken from [Music] this repository and just want to note that this and this notice that there's only one repository and I'm also really grateful for the work and that you can see in this repository although this slides these these slides are going to be up on github later on so you can look at you can look at this after after my job here's the sources that this repository takes from and I I wanted to show this this source this this part of the repository because this is the data that I used in late March and just notice that oh gosh so big late March that you get province and state country-region you know last time they are all these are these are all these these headings and this is your this is your raw data but then on [Music] but then on I think this was one week ago and I'm just guessing that it's the same now the headings have changed and the raw data that you that I pulled from it was different actually a lot of other people pull cool from this data and they create a api's and I've been gonna talk about them later [Music] here's something interesting which oh I think yeah I'll talk about I'll talk about pulling from this from this source later here's this here's this something interesting that I found that I think it looks nice so when you build Maps in JavaScript I I think you look at these map libraries at first so leaflet popularise and later I'm gonna show where I got stuck while using open layers so I ended up using leaflet for speed and it looks like what I wanted to get in the end you'll probably use these map fbi's as well if you working on maps [Music] some some things that you might consider is like pricing so for format box I'm quite scared so for Google Maps you can set daily quotas to protect against unexpected increases so you don't want your billing to suddenly increase without you knowing which which I aced when using map box so it's important to pick the right tool for the right job and don't be like me if you can avoid it I only pick me flirt because I only ended up using leaflet because it works nicely with Matt box and it just got close to results I wanted to get so for security you might want to look at that too like how it deals with tokens and how how each of these map ups deal with security and and how good their documentation is for security so you can link leaflet to Google Maps by using plugins you can also have a look at these are the these are the plugins as well when Apple's map is marketeers in maps like there's comparisons usually between google maps and maps and other map map api is I'm not going to go through that in this talk this talk is just meant for a like things specific to mine to what I wanted to to get if also if there's a plan like this if there's a better API that that um can help with open source projects like what I what I did that would be that would be they'll be best because um I don't want to worry about billing and things like that when I'm doing client-side small small projects open source [Music] so before the demo I just want to say again that if you take data from a repository or Fei be prepared for the data format to change and break your entire app this will tend to happen if you automate pulling fetching the data and not something I consider was like automating the whole process to get the latest to show the latest map and the latest data but after a while I I realized that if you pull from a dynamic API your your app might break it might be inaccurate which is not what not not good for you your users so so if I'll talk about this later in the next slide or now it should also have two changes every day or at shorter intervals if you intend to work a news organization Americans Newton this might be helpful for you this is also helpful for databases in general so something I thought would be nice to have I think it'd be nice to have if you do any of this database in the future is you should let let your users choose the primary location because you look here and and what I want to see is like in the around Singapore just and I get you know this and I feel like slow down get to that at the end it takes time also there are enough existing visualizations online on coca Dorothy please don't add more unless you can maintain it well that's what that's why I'm reluctant to make it to add more to this this this whole thing I'm doing is just a learning tool and it's not well you can use it to deploy something but just maintain it and so when I started off I start off with open I tried I I try to do I try to use both open layers and leaflet this is just to do a comparison for them and I think I tried I tried them both around the same time but what I got for open layers was this what I got in the end what I did was I followed their documentation and I for some reason I did service I would just know not what I wanted and then I did did their client-side thing and that is that's what you get when you get when you use some open open layers yeah that's what you get when you use open layers and open layers compared to leaflet it's nice because like for instance if you want it it localizes the language of locations automatically it gives you if that part of the box for all the different places in the world but the thing is for openlayers I got stuck I got stuck here and like I didn't want to move further because it's just more complicated because I wanted to get something similarly similar to this you're just shown in Channel NewsAsia and I don't I don't mind it looking like this but to get the markers on it's quite difficult I think it was quite difficult so so that's it for open layers so I tried leaflet and oh it's gonna show mm I was gonna show the real like like what I was trying to recreate and it's this this thing that's on channel is it Channel NewsAsia and this mmm kind of kept lucky yeah this is mine it's what I got when I usually flip so when you zoom in you get well you get like the darker red areas are places where it's more affected I guess and then when you zoom in you get a similar thing where you can see for each each country like their current situation and this is March 21st so I'm gonna go through how you can build something like this five time HTML is here I'd leaflet add another thing for leaflet think you see this in the documentation is quite nice and I joined oh I'm not sure if I've time well I joined I joined both chart yes and leaflet into the same into the same half machine so what I mean by truck is is like you can view the you can view the case is left as well on the same I just put it all together so that's what char CSS does then all you have to do for leaflet is add this all you have to do for charge is inside that and notice I don't use d3.js and I use short guess and I'm if I have time I'll go through that well I know why I try to avoid using d3 now that's this buttons to access token here which I'm not gonna show but the whole things of a source but I had removed the access token in my the public repository the data this is the data from John Hopkins I think that's that's the data and then script for leaflet is here and just that's that's all it takes to do like all that so I think set the you set the bounds of a map here Oh Southwest North East then you said when you first load the page you set the center here and set the view here and I I think I'm not sure what country it's that 244 against the London or something then had the tiles so so for for mapping in general on the web I think everything has to use tiles 512 pixels I guess I think so everything is made of tiles that are this this size set the markers which are [Music] the markers are the blue these blue things where the pop-up comes from is patched the circles are the circles are the circles the red circles add them here I'll just go through this like for each for each data set for each data point you add a marker here and then it's pop-up and then you add the pop-up to the position latitude/longitude on the map you add the circle as well then you add the marker layer the layer of markers all all the markers which is all the blue points onto the map and then you add all the circles onto the map and then you think you you think you've added all the all the markers already but what you what do you have to do I'll tell you later so all the blue blue points I think gosh I think all the markers are pushed here but not sure remember what that that does because I wanted to add comments on to this but I thought I'd be able to remember anyway anyway you have to add like I've added all the markers already but I have to add it again I don't know I don't know why I have to do that for leaflet and then I I want to remove them I think I think I have to clear I have to clear them every time you zoom in and at a certain point after delete these blue markers and a sort of zoom point and the thing is actually I shouldn't shouldn't even gone through the code like what I what I tried to do was I just want to show this but what what you might firstly do is it'll show it will show this all of this but what happens is that the whole map is shown it shows all the markers it shows all the markers and all the puppets for the entire map even though it's not in the view it even even if it's not in the view right now so in my code here which is public it which is open source you can find out how I did that and it's these few lines only but what what that what it does out of the box is that it shows you all the popups outside of this view and it lags a lot it there's a very huge performance hit because all these things are dumb all these things are built using the Dom the popups are all Dom I think I guess the markers I think the markers are images it is not really no idea so okay I think I've gone over time but okay which is really no idea so I I got around that made it quite perfect made the performance quite quite good I think it performs better than performance better than this yeah which which you can't even really load and also something about this I've missed out I started I fixed for this I fixed their this this great thing you get when you drag to the top or to the bottom okay okay how about where do people get the project from if they want to try your code out I think this it's on my it's on my github boots oh it's not you can't find this type in like the search for did a search for data visualizations and maps your github is WL WL - is it and it's this you just search for this repository and all you have to do is all you have to do is add the private key for a leaflet for map box in this [Music] all right in this in this string here and then you can get the whole thing and I view the whole thing again thanks a lot very interesting we're gonna ask some open it up for questions now I think Eric's could have a mutant everyone in case in all monster house questions I don't know if Cheyenne can help you with the UM with the billing because I know he's had trouble with animating in the past I have one questions for you did you did you try making these circles because you made them darker when there were more cases did you try making them larger well but by the number of cases changing the size I think and I tried not to do that because I knew that that would take quite a long time so I avoided doing that it takes a considerable amount of time compared to how like how I got all this set up it was quite quick and I and I finished this like like within one or two days I think okay sometime in March so and I think joining getting those large circles and doing it like channels in News Asia there's also a maybe performance problems then you might have to deal with as well once you get that off maybe we can never know about performance until we try you try anyone else have questions for William I have got a question for I I don't know if I'm allowed to ask yeah go ahead like like Oh actually actually it's difficult to ask like like in this in in zoom but I was wondering how many people still use d3 for their database yeah okay yeah I guess done online [Music] I think everyone can click on the path on this difference but then I would wanna and then like yes or no I mean everyone can say like yes or no one and then I see it yep and yes means d3 right yeah how many people still use d3 for all the means something else no I still use it but I'm just wondering how you still use it and actually the follow-up question would be have you found anything better because it's causing its costs problems for me like for some work and it happens again and I ended up using charges I used to use d3 now we're using victory charts for react which seemed a little bit easier to get going with but I couldn't really say which one's best I think d3 would give us more flexibility but victory was very simple to just put the data and get some charts and some interactive okay maybe at the end you can have more chests after the end of the meter and and heater