Changes between Version 1 and Version 2 of MapGuideRfc132


Ignore:
Timestamp:
Mar 22, 2013, 7:52:41 AM (11 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc132

    v1 v2  
    3535 * Tile Queues, for improved tile loading.
    3636 * New CacheRead and CacheWrite controls for limited client-side caching of tile images.
    37  * Client Zoom, allowing for map tile images to be stretched client-side to fit the current view of the map. This one feature alone presents some new scenarios that previously were not possible, such as the ability to have a Map Definition with dynamic and tiled layers acting as a fully dynamic map that can be zoomed to any arbitrary scale without finite scale restrictions (as tiles will be stretched client-side by OpenLayers). Tiles from commerical layers like OpenStreetMap can also be stretched client-side in such a manner.
     37 * Client Zoom, allowing for map tile images to be stretched client-side to fit the current view of the map. This one feature alone presents some new scenarios that previously were not possible, such as the ability to have a Map Definition with dynamic layers combined with an OpenStreetMap background that can be zoomed to at any arbitrary level (as OSM tiles will be stretched client-side by OpenLayers).
     38
     39The second problem is that we are using a custom build of OpenLayers, whose version is currently unknown (The author suspects 2.10, but the version string in OpenLayers.js has been overwritten by a subversion revision), and whose audit trail of custom modifications is very difficult to follow.
     40
     41If a user decides to customize their OpenLayers.js (to add features we excluded from our fusion.cfg build profile), we need to ensure any Fusion-specific customizations are rolled into their custom build as well. As it currently stands, it is difficult to do this and verify this.
    3842
    3943== Proposed Solution ==
     
    4347To improve our audit trail of customizations to OpenLayers and to make future OpenLayers upgrades easier, Fusion-specific modifications to OpenLayers are kept under lib/OpenLayers/ext. Whenever a new built OpenLayers.js needs to be checked in, the files and folders under lib/OpenLayers/ext can be copied into a standard OpenLayers distribution (overwriting any existing files) to be built with our fusion.cfg build configuration file.
    4448
    45 Currently, we are keeping OpenLayers.Util and our implementation of OpenLayers.Layer.MapGuide under this directory.
     49Currently, we are keeping OpenLayers.Util and our implementation of OpenLayers.Layer.MapGuide under this directory. These are the only 2 parts of standard OpenLayers with known Fusion-specific modifications.
    4650
    47 The client-zoom feature is controlled by the existing FractionalZoom extension property of the Map widget.
     51The client-zoom feature is controlled by the existing FractionalZoom extension property of the Map widget. This value already defaults to true, so it will automatically be enabled for scenarios that allow for it.
    4852
    49 Under client-zoom the following behaviour occurs (under these examples, OSM is interchangeable with any other grid-based tiled layer):
     53Under client-zoom the following behaviour occurs:
    5054 * MapGuide dynamic layers + OSM (fractionalZoom = true): Map is fully dynamic and OSM tiles are stretched accordingly
    5155 * MapGuide dynamic layers + OSM (fractionalZoom = false): Scales "snap" to OSM scales and are stretched accordingly when going below the smallest supported OSM scale.
     
    5357The client-zoom feature has no effect if the map has no tiled layers.
    5458
    55 The client-zoom technique does not work in conjunction with Google/Bing layers. See implications
     59The client-zoom technique does not work in conjunction with Google/Bing layers and only if the available commercial layers are exclusively OpenStreetMap. See implications
    5660
    5761This implementation work has already been completed on the [http://trac.osgeo.org/fusion/browser/sandbox/ol212 ol212 sandbox branch of Fusion]. Upon adoption of this RFC, the changes will be merged back into Fusion trunk that's automatically linked by our MapGuide Oem tree.
     
    97101OpenLayers 2.12 along with the current JxLib presents an issue on Firefox 18+, this is due to the version of MooTools used by JxLib causing "too much recursion" errors under Firefox 18+. As part of this RFC, the MooTools used by JxLib will be upgraded to 1.2.6
    98102
     103For this RFC, the OpenLayers client-zoom feature is only available for a Map Definition with all dynamic layers in conjunction with an OpenStreetMap background, which can be activated by setting the FractionalZoom map widget extension property to true (already the default value, no there no actual need to set such value)
     104
    99105The OpenLayers client-zoom feature cannot be used with Google and Bing layers as:
    100106
     
    102108
    103109 b) Client-side stretching of such tiles constitutes content modification of their tiles and violates the terms of use.
     110
     111The OpenLayers client-zoom feature has no effect on a MapGuide Map Definition with a combination of tiled and dynamic layers. It will behave like previous versions of Fusion. Likewise, when said map is mixed with a commercial layer, MapGuide tiled layers will only line up with commercial layers if they use the same finite scale list. Ability to client-zoom scale MapGuide tiled layers to match the current dynamic map view is possible, but it is not implemented for this RFC.
    104112
    105113If we're viewing a map with Google + Bing + OSM and set the FractionalZoom property of the Map widget to true, switching to a Google or Bing layer will disable client-zoom while that layer is active.