GithubHelp home page GithubHelp logo

Comments (4)

fabacab avatar fabacab commented on September 16, 2024

Unfortunately it seems that the Google "My Maps" service does not expose an API for loading data from a particular My Map layer when using the Google Maps JavaScript API.

All our maps currently use Google Maps because it's what most people would expect to see.

All we really need is a way to define "places" (latitude/longitude coordinates with additional metadata such as name, notes, etc.) that an admin can define as being relevant to a particular type of emergency alert issued by their Buoy users. With that information defined, the maps we show then overlay these places as markers on the map. However, I don't want to use the Google Places library because the places defined in that library are controlled by Google, and so we would be limited only to those "establishments or prominent points of interest" maintained by Google. That dataset is largely insufficient for our use case, and since it cannot be modified, it remains unusable for us.

Alternative approaches to using Google "My Maps" can be boiled down to two main approaches:

  • Directing admins to use a custom map placing/locating service other than Google My Maps (like which ones?), then loading this other dataset as Marker objects in our Google Maps map.
  • Implementing our own "places" interface in the Buoy admin screens and using this data directly.

A third option exists if we are willing to move away from Google Maps entirely and use an alternate map database, such as OpenStreetMap, but I am still unsure if this actually offers an alternative to Google My Maps.

Anyway, here is a small advantage/disadvantage analysis of the two basic approaches above:

  • Alternate places service:
    • Pro:
      • Less code to write/maintain.
      • Likely easier for end-users to use.
      • Shares community knowledge with other users of the third-party service.
      • Offers integration opportunities.
    • Con:
      • Splits data between Buoy and another service, possibly creating a dependency
      • Potentially leaks information about likely resources/refuge locations accessed by users of a particular Buoy instance.
      • Possibly harder for organizations to maintain over a long-term.
  • Roll-our-own places database:
    • Pro:
      • More customizable/more ability for useful metadata because we're not depending on third-party development
      • Easier to secure because we take responsibility for the dataset
      • More likely to be maintained because the info is in the same place as other Buoy settings.
    • Con:
      • More code to write/maintain (harder to implement).
      • Less likely to automatically incorporate advancements/features made by others who specialize in this area.
      • Harder to share this info about resources with people who don't already know and use Buoy.

Okay, that was a big braindump. Gonna put this feature on the back burner until these questions are addressed/talked through a little more.

from buoy.

fabacab avatar fabacab commented on September 16, 2024

Okay, after a bit more research, it looks like if we can find a suitable maps-like service that exports data we enter as either GeoRSS or KML, we can use the KmlLayer class of the Google Maps JavaScript API to do what we need.

Additionally, we could use the (currently experimental) Google Fusion Tables service, which is a bit like Google Sheets for data scientists, and use the FusionTablesLayer class in the Google Maps JavaScript API to similar effect. Google Fusion Tables is no doubt more powerful than we actually need, and I'm not sure how comfortable Buoy admins will be using it. I'm also not sure how much I want to trust Google's "experimental" services to be around forever. But it's good to know this thing is there and that this is an option.

from buoy.

fabacab avatar fabacab commented on September 16, 2024

It occurs to me that this feature/enhancement could also be extended to enabling individual usrs to define places for themselves to show their own response team, such as “my favorite comfort food shop” or even “my abusive ex’s house” so that responders have additional geolocation information for the context of any given emergency location.

from buoy.

fabacab avatar fabacab commented on September 16, 2024

For a more immediately doable and smaller scope, we could simply provide a link to a form that fills whatever geoJSON we need and then store that file in this repo on GitHub itself.

See Mapping geoJSON files on GitHub for details.

from buoy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.