I am writing a JQuery Openlayers javascript web application that connects to a API, which exposes a million geo located points plus metrics and information about the points.
One metric is a points importance, so the points can be ordered and limited by this metric. I can request from the API a limited amount of points within a bounding box.
The application is to be mobile optimised, which means I need to detect the screen size, taking into account pixel density, and change the amount of points to be queried and displayed as markers to the user.
The markers are similar in size and look to google maps api marker/pin icon. The user can tap a marker and display a call out.
So for a iPhone 3g, 4 and 4S a limit of 20 would be fine, an iPad 50, but for a desktop it's possible that it should be related to the current size the user has chosen for the map.
The application is to be responsive to layout and the user can choose how many information panels to show, so it's possible on the iPad the limit should decrease as more panels are "unfolded". In fact the map is secondary, and this will be "foldable" too.
How do I determine the screen size of mobile/desktop devices, including taking into account retina displays (i.e. denser displays don't display more markers)?
Can I also determine the current map display area too?