Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ontario Government + GeoTime #45

Closed
watadarkstar opened this issue Apr 3, 2020 · 16 comments
Closed

Ontario Government + GeoTime #45

watadarkstar opened this issue Apr 3, 2020 · 16 comments

Comments

@watadarkstar
Copy link
Contributor

watadarkstar commented Apr 3, 2020

Hi @marleymarl 👋

I saw your post on Linkedin and wanted to try my hands at integrating the Confirmed positive cases of COVID19 in Ontario dataset with what you have built.

After a couple hours I was able to integrate Ontario's 2,800 data points into your tool, check it out here:
https://covid-19-map-ontario.netlify.com/

I learned a few things along the way that might be useful to you and your team / volunteers.

  1. I tried to integrate with the Ontario Data API at first but ran into CORS issues. A POST to
    https://data.ontario.ca/api/3/action/datastore_search should work but it doesn't due to browser CORS issues. I contacted the Ontario data team to see if they can help as it seems like the API is not accessible by 3rd party websites. For the time being I downloaded the JSON data and stored it statically on the website mentioned above.

  2. There should be 2,800 markers on the map but they do not all appear. I'm guessing this is a limitation of the library Google maps React. Two options worth exploring:

EDIT: It seems like the dataset is not very accurate and is reporting very rough lats and longs and that might be the reason for not all 2,800 markers showing up

  1. There are lots of improvements needed like using functional components, hooks, decoupling the UI with the data fetching layer, and removing lots of logic that is placed inside the components.

Hope this helps you and your team 😄

@heldersepu
Copy link
Collaborator

  1. CORS issues.

Nothing we can really do, if people put CORS in place for their data we should not look for ways to circumvent (there are ways but there could be legal ramification), what you did is perfect contact the API team and let them know...

2,800 markers

That's a nice challenge, will look into it on my end... if you can share your code will be nice!
Maybe the bug is in your end

lots of improvements needed

Yes! this project is 2 days old!!! ...and lots of developers needed too
if you can break down into separate issues what you would like to see we can start prioritizing and tackling them as time is available

@heldersepu
Copy link
Collaborator

I was diving into the:
markers on the map but they do not all appear
and there is a LOT of duplicate data there...

Screenshot from 2020-04-03 23-58-11

@heldersepu
Copy link
Collaborator

There is a way to do it with Google maps but I haven't tried this yet:
https://github.com/istarkov/google-map-thousands-markers

Here is the site
https://istarkov.github.io/google-map-thousands-markers/
and I would not recommend that to anyone

When we have a lot of markers the way to go is Marker Clustering:
https://developers.google.com/maps/documentation/javascript/marker-clustering

@watadarkstar
Copy link
Contributor Author

watadarkstar commented Apr 4, 2020

@heldersepu Thank you for the cluster recommendation! I was able to do marker clustering this morning on the Ontario dataset, you can check it out here:
https://deploy-preview-3--covid-19-map-ontario.netlify.com

I will provide source code soon!

@heldersepu
Copy link
Collaborator

... but let me reiterate: there are a lot of duplicates on that data:
Screenshot from 2020-04-04 12-35-11
according to that the are 683 on that one location, maybe those coordinates are not the actual case location ...

Looking at google maps:
https://www.google.com/maps/place/Toronto+Public+Health/@43.6561883,-79.3792294,18.79z/data=!4m13!1m7!3m6!1s0x4cce05b25f5113af:0x70f8425629621e09!2sOntario,+Canada!3b1!8m2!3d51.253775!4d-85.323214!3m4!1s0x89d4cb352521d5fd:0x5acf5c473974f2de!8m2!3d43.6565316!4d-79.379375?hl=en
that is the Toronto Public Health building my guess those coordinates are the agency that confirmed the case not the known locations of the patient(s)

@heldersepu
Copy link
Collaborator

I think this is your source code:
https://github.com/watadarkstar/covid-19-map-ontario/blob/master/src/MapContainer.js#L67-L68

      latitude: properties.Reporting_PHU_Latitude,
      longitude: properties.Reporting_PHU_Longitude,

That name confirms my suspicions Reporting_PHU_* that is not a known location of patient.
Right now I can't really see a use for that...

@watadarkstar
Copy link
Contributor Author

@heldersepu Yeah for sure. I understand that these are not exact patient case coordinates.

@watadarkstar
Copy link
Contributor Author

@heldersepu I don't think governments would give exact patient data? Wouldn't that be a violation of privacy?

@heldersepu
Copy link
Collaborator

Join us, we can use your expertise...
@marleymarl can you send him an invite to slack

@marleymarl
Copy link
Owner

@heldersepu Yes, I'll do that. First I need his email. @watadarkstar I'll reach out on LinkedIn to get that from you.

@marleymarl
Copy link
Owner

@heldersepu I don't think governments would give exact patient data? Wouldn't that be a violation of privacy?

@watadarkstar That's why we are building a totally anonymous and private input.

@marleymarl
Copy link
Owner

To get a better sense of what data that GeoTimeline captures see: https://app.geotimeline.com/dataview.

@heldersepu
Copy link
Collaborator

heldersepu commented Apr 4, 2020

governments would give exact patient data? ... violation of privacy?.

it does not need to be exact or contain private data.
but to trace a patient we need to know more about time and locations, example:

Patient landed from Italy on February 30 on Miami international at 10AM
lunch with the family @ La Carreta in called ocho
Then at 5pm he got some supplies from Home Depot
Following date (February 31) patient at 8AM ran from Downtown Fort Lauderdale via Las Olas all the way to the beach and had lunch at Cafe Ibiza.
Next day patient started showing symptoms and self quarantined

with that others can see if they been in the same route with someone potentially infected

@watadarkstar
Copy link
Contributor Author

@marleymarl Cool yeah I understand. My project was more about exploring different visualizations on the Ontario dataset. I found your repository and it was a good starting point for me even though I didn't really need the patient collection part. This repo was useful to me because you had a bunch of the work already setup for me. I know I'm not using this codebase as it was intended to be used but it was helpful even for my use case.

@watadarkstar
Copy link
Contributor Author

I still want to explore building a heat map with polygon boundaries. But here is what I have tried so far:

  1. I used your library and simply inserted the data.
  2. I converted a lot of the codebase to hooks so I could use hooks like useSuperCluster and useSWR. I can help you guys convert the codebase to hooks.
  3. I swapped your google-maps-react for another library called google-map-react. It was easier for me to do clustering with.
  4. I tried using Mapbox instead which was cool but not worth the change imho.

Definitely add me to slack and we can chat more :)

Here is my source code (master has clusters, hooks, and the swap of google-react-map):
https://github.com/watadarkstar/covid-19-map-ontario

Mapbox version:
https://github.com/watadarkstar/covid-19-map-ontario/tree/mapbox

@heldersepu
Copy link
Collaborator

Ye refactoring the code would be a very welcomed addition, there is an issue open for that:
#10

I'm gonna close this one since it is not something we have to work on

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants