MapGuide Open Source 2.6 Beta 1 released

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

MapGuide Open Source 2.6 Beta 1 released

Jackie Ng
We are pleased to announce that the MapGuide Open Source project team has made MapGuide Open Source 2.6 beta 1 available

Documentation: Updated Developer's Guide, API reference documentation and sample code are now included with the installer. The release notes contain information on API changes for MapGuide 2.6

If you find a defect, please report it using http://trac.osgeo.org/mapguide

_______________________________________________
mapguide-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapguide-users
Reply | Threaded
Open this post in threaded view
|

Re: MapGuide Open Source 2.6 Beta 1 released

Jackie Ng
As covered in the release notes, the CentOS build of MapGuide has a change in the xerces library used by any part of MapGuide that works with XML content.

The xerces library for the CentOS build is now built with the iconv transcoder instead of the default GNU iconv transcoder. This was done to avoid cryptic "could not load a transcoding service" errors that were occuring on mgserver startup in my developement and clean-install CentOS VMs.

The Ubuntu build still uses xerces built against the default GNU iconv transcoder and does not throw this xerces error.

I do not know what side-effects there are as a result of this change of transcoders. If you encounter any issues with your CentOS install of 2.6 beta 1 in the areas of:

 * XML content processing
 * Interactions with resources containing non-english content
 * Resource Service APIs
 * Site/Session repositories

I'd be interested to know about it. Thanks.

- Jackie
Reply | Threaded
Open this post in threaded view
|

Re: MapGuide Open Source 2.6 Beta 1 released

Bernhard Maehler
In reply to this post by Jackie Ng
I noticed an issue with Fusion and HttpTiles using AIMS 2015.
It doesn't work anymore, I just get a blank map without any tiles.
The problem also occurs with MapGuide Open Source 2.6 Beta 1.
Meanwhile I found out that the cause of the problem are changes in OpenLayers.js (MapGuide.js).
The problem doesn't occur, if I use the original OpenLayers.js (Version 2.13.1) from openlayers.org.
What are the differences?
In OpenLayers.js which comes with AIMS 2015 / MapGuide Open Source 2.6 Beta 1 the function calculateGridLayout
as part of OpenLayers/Layer/Grid.js is overwritten in section MapGuide.js.

/* ======================================================================
    OpenLayers/Layer/Grid.js
   ====================================================================== */
   
   ....
    calculateGridLayout: function(bounds, origin, resolution) {
        var tilelon = resolution * this.tileSize.w;
        var tilelat = resolution * this.tileSize.h;
       
        var offsetlon = bounds.left - origin.lon;
        var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
       
        var rowSign = this.rowSign;

        var offsetlat = rowSign * (origin.lat - bounds.top + tilelat);  
        var tilerow = Math[~rowSign ? 'floor' : 'ceil'](offsetlat/tilelat) - this.buffer * rowSign;
       
        return {
          tilelon: tilelon, tilelat: tilelat,
          startcol: tilecol, startrow: tilerow
        };
        ...

/* ======================================================================
    OpenLayers/Layer/MapGuide.js
   ====================================================================== */
        ...
    calculateGridLayout: function(bounds, origin, resolution) {
        var tilelon = resolution * this.tileSize.w;
        var tilelat = resolution * this.tileSize.h;
       
        var offsetlon = bounds.left - origin.lon;
        var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
        var tilecolremain = offsetlon/tilelon - tilecol;
        var tileoffsetx = -tilecolremain * this.tileSize.w;
        var tileoffsetlon = origin.lon + tilecol * tilelon;
       
        var offsetlat = origin.lat - bounds.top + tilelat;
        var tilerow = Math.floor(offsetlat/tilelat) - this.buffer;
        var tilerowremain = tilerow - offsetlat/tilelat;
        var tileoffsety = tilerowremain * this.tileSize.h;
        var tileoffsetlat = origin.lat - tilelat*tilerow;
       
        return {
          tilelon: tilelon, tilelat: tilelat,
          tileoffsetlon: tileoffsetlon, tileoffsetlat: tileoffsetlat,
          tileoffsetx: tileoffsetx, tileoffsety: tileoffsety
        };
        ...
       
If I remove above lines from section MapGuide.js (as in the original OpenLayer.js) erverything works fine again!
As I am not a programmer, what are the reasons for the changes in MapGuide.js?

Thanks,
Bernhard
Reply | Threaded
Open this post in threaded view
|

Re: MapGuide Open Source 2.6 Beta 1 released

Jackie Ng
Thank Bernhard,

The Fusion that comes with MGOS 2.6 Beta 1 uses OpenLayers 2.13.1. However, we also keep track of any custom modifications to any files in the OL source.

MapGuide.js was one of them and it turned out that we no longer have to keep a modified copy for our own OpenLayers.js. Basically, it's already been fixed due to this ticket: http://trac.osgeo.org/fusion/ticket/614

- Jackie
Reply | Threaded
Open this post in threaded view
|

Re: MapGuide Open Source 2.6 Beta 1 released

Bernhard Maehler
Thanks for the info Jackie.
I wasn't aware of the changes and improvements you made since publishing MapGuide Open Source 2.6 Beta 1.
Yesterday I checked the newest files on Fusion trunk and updated this buggy version of Fusion which comes with AIMS 2015 (sorry Autodesk...).
Looks very good until now (e. g. no more php error messages with selection.php) and from an administration standpoint,
the upgrades to Apache 2.4 and PHP 5.5 and the TraceKit integration (which is not a part of AIMS) are really great improvements.
An issue that still exist (in our environment):
We have several maps with two base layer groups (e. g. the first base layer is a a town map the second one an aerial photo).
The first base layer group is set to visible (=initially visible in map), the second one to invisible.
After opening the map, both base layer groups are visible and the second one (aerial photo) overlaps the first one (town map).
The legend tree looks ok, the first base layer group has been turned on, the second one has been turned off.
In a former version of Fusion (I don't know the exact version) this issue has been patched.
The patch has been applied to MapGuide.js with following lines of code at the end of function initLoadMapResponse:

            var i = 0;
            var j = 0;
            for(i = 0;i < this.layerRoot.groups.length; i++){  
                if(this.layerRoot.groups[i].isBaseMapGroup && !this.layerRoot.groups[i].initiallyVisible){
                    for(j = 0; j<this.oLayersOLTile.length; j++) {
                        if(this.oLayersOLTile[j].params.basemaplayergroupname === this.layerRoot.groups[i].name) {
                            this.oLayersOLTile[j].setVisibility(false);
                        }
                    }    
                }  
            }
        },

In the actual version above lines have been removed.
However, after applying the patch to the actual version of MapGuide.js everything works fine again.

Bernhard
Reply | Threaded
Open this post in threaded view
|

Re: MapGuide Open Source 2.6 Beta 1 released

Jackie Ng
Thanks for the heads up. I can reproduce the problem and I've restored that code fragment for 2.6.

- Jackie