Geolocation load time

Hi Omeka team. I posted about this earlier, and my awesome friend helped me fix the errors on my map. When I set the # of items displayed on a map to something like 500 (which is what it’s set on now), the map loads pretty quickly. However, when I try to get all 2,500 items to show on the map, the map seems to time out. I wonder if there is a limit on the api request.

The map page (currently separated into 500 items/page) can be found here:
http://wearinggayhistory.com/geolocation/map/browse

Any advice or help with this would be so much appreciated!

Thanks, friends!
-ENG

The Geolocation plugin stuff is generally built on the assumption that it’s going to be working with a fairly small page size, so there could be a variety of things going on:

  • Performance of the actual markers and the map itself. Geolocation creates a popup window object for every item on the map, even though we only allow one to be open at once. Changing this so the window is shared could lead to some improvement.
    Additionally/alternativelyusing something like marker clustering could cut down on the number of rendered markers which could help.
  • Performance of Omeka generating the location information. I think this may actually be the major piece of what’s slowing you down with the big pages. Omeka generally isn’t the most efficient in how it deals with its records, preferring instead to be more flexible at the cost of performance.
    In this case, the KML file we generate with the locations has to make additional database queries for every item to get the title and description. A more efficient query could get all the titles and descriptions at once (or at least in many fewer queries).

It’s a little tough to get a good idea of what’s worth it and what isn’t in terms of changes without having an example dataset of a similar size. We’ll have to work on that.

I pushed one of the simplest improvements (switching to using only one InfoWindow instead of one for each marker) to a new branch named “perf” on the Geolocation GitHub.