[API-users] interaction for the maps api

Tim Robertson trobertson at gbif.org
Thu Mar 19 09:38:15 CET 2015


Thanks Ken-ichi,

Coincidentally, I see the vector maps are picking up pace quickly with ESRI announcing support last week:
  https://www.mapbox.com/blog/vector-tile-adoption/

I expect this is going to change the way we all build mapping interfaces in the very near future.

Cheers,
Tim



On 19 Mar 2015, at 06:32, Ken-ichi <kenichi.ueda at gmail.com> wrote:

> Thanks, Tim. Obviously you guys are more reactive than I am! Patrick
> and I agree that doing API calls for every click on the map is a bit
> much, especially considering we have other clickable stuff on every
> map where we show the GBIF layer, so we'll wait until you guys put
> something together. If you go down the vector tile path, hopefully we
> can learn from what you implement!
> 
> -ken-ichi
> 
> On Tue, Mar 17, 2015 at 1:49 AM, Tim Robertson <trobertson at gbif.org> wrote:
>> Hi Ken Ichi
>> 
>> We have given it some thought, but it hasn’t yet got to the a priority where we’ve put serious effort to implement it.
>> 
>> We’d likely do one of:
>> 
>> a) a proximity search in the occurrence search API (currently there is polygon only) which is served from SOLR
>> b) a custom solution using HBase which serves the maps.  Effectively being a key value pair store, this comes with some limitation
>>  - this would serve up something like the UTFGrid or offer a custom JSON service / list by location service
>> c) taking the hit and doing mapbox vector tiles, and going for webgl
>> 
>> The way all the map work is going these days, c) is probably the correct way to do it and I have some prototypes of this.  Vector tiles all use protobuf, whereas we built using Apache Avro for our encoding format.
>> 
>> The reality is though, we are unlikely to get to working on maps for the next 6 months or so as we have a pretty heavy workload between now and the governing board.  We might be able to get a) into the API sooner and I’ll discuss that with the team here.
>> 
>> The only workaround in the meantime would be to do a small bounding box search, such as the following:
>>  http://api.gbif.org/v1/occurrence/search?GEOMETRY=POLYGON((-121.407165 35.855665,-121.407165 35.844534,-121.393432 35.844534,-121.393432 35.855665,-121.407165 35.855665))
>> 
>> By using this, you could construct a small area around where the user clicked, run a search on click, and then you have the coordinates in the response to inspect if you *really* need to match a point.
>> Is that reasonable for the time being?
>> 
>> I’m sorry we can’t be more reactive.
>> 
>> Congratulations to you and Patrick on the work - looks great.
>> 
>> Cheers,
>> Tim
>> 
>> 
>> 
>> On 16 Mar 2015, at 22:30, Ken-ichi <kenichi.ueda at gmail.com> wrote:
>> 
>>> Hi all,
>>> 
>>> We just added GBIF tiles as an optional overlay to many of our maps at
>>> iNaturalist.org, e.g.
>>> http://www.inaturalist.org/taxa/27818-Taricha-torosa/map. They're
>>> great and the API works perfectly, but the first thing people want to
>>> do when they see this data is click on those points! Has anyone at
>>> GBIF or elsewhere given some thought to how to implement that?
>>> 
>>> The easiest way to do this from our perspective would be for GBIF to
>>> implement a UTFGrid endpoint for their tiles
>>> (https://github.com/mapbox/utfgrid-spec). The corresponding JSON
>>> wouldn't have to include all the occurrences (which would probably be
>>> a lot) but it could include 1 page of occurrences, or just a bounding
>>> box clients could use to generate a link to retrieve the corresponding
>>> data on GBIF.
>>> 
>>> Another method I was thinking about was to make a custom tile overlay
>>> composed of HTML canvas elements, load the tile image onto the canvas,
>>> and use clicks to get the RGBA values of the corresponding pixel at
>>> the click coordinates to see if there was any color there. If alpha ==
>>> 1, then retrieve corresponding occurrences from the GBIF occurrences
>>> API using the bounding box implied by the pixel at that zoom level.
>>> Canvases have been used as overlays in Google Maps, at least (e.g.
>>> https://github.com/brendankenny/CanvasLayer), and I'm sure in other
>>> frontend map frameworks as well, but I'm not sure what the performance
>>> would be like.
>>> 
>>> Other ideas?
>>> 
>>> -ken-ichi
>>> _______________________________________________
>>> API-users mailing list
>>> API-users at lists.gbif.org
>>> http://lists.gbif.org/mailman/listinfo/api-users
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gbif.org/pipermail/api-users/attachments/20150319/fe2e6277/attachment-0001.html>


More information about the API-users mailing list