ThinkGeo.com    |     Documentation    |     Premium Support

New version with OpenLayers 2.8

I recently upgraded to the latest web edition, and it seems that things broke in every broweser except Webkit based browsers. I've spent the last couple days trying to dig into what is causing the problems. They all seem to occur after I try to SetDrawMode() to "Normal" (which BTW, throws errors and never returns in FF)


In FF, dragging then seems to get double or tripple wired up, and accelerating itself. You drag 10px, it moves 500px, and keeps moving when you are no longer dragging.


In IE8, everything seems to have vastly slowed down since the previos version. Callbacks and rendering that used to take seconds, now takes 30+ seconds.


I can half replicate the FF prob in the "Draw and Edit Shapes" sample. If you goto poly mode, draw a shape, then click normal mode, It throws "this.layerContainerDiv.contains is not a function" (opl_GeoResource.axd Line 710). I think that error is somehow bubbling up to create chaos throughout my application (which btw, uses jQuery without problems before the update).


I'll keep you updated if I find anything else that might help track this down.


Thanks,


Rob



Rob, 
  
 We recreated your issue in Firefox which doesn’t support contains function in DOM tree node. It raised a Postback which affects your performance I guess. Please contact our support for a temporary version; clear your current browser cache files and try again. 
  
 Please let me know if you have more questions. 
  
 Thanks, 
 Howard

I sent off an email to support on Monday night, and still haven’t heard anything back.  
  
 We were supposed to launch this week, but can’t until we get a version that works in both IE8 and FF.

Rob, 
  
   The big release is on Monday the 16th.  I am going over to talk with the support guys to see why you didn’t get anything back on the e-mail you sent.  Typically they are very good with getting temp version out. 
  
 David

Rob, 
  
   Support will be contacting you and setting up the new dll pack in your ftp directory.   
  
 David

Rob,  
  
 Please see your FTP folder for the latest build of Map Suite Web. I apologize for not responding sooner but I did not find any e-mails from you in my search.

Thanks!  
  
 Weird, the email shows up in my sent folder… but I did send it from my iPhone, so who knows. 
  
 -Rob

The new version fixed my firefox issues. I was also able to track down most of the IE8 weirdness. Thanks guys!

Rob, 
  
 Thanks for reporting this issue and please let us know if you have more questions. 
  
 Thanks, 
 Howard

Hi,


As the general description on the home page doesn't mention it, I searched for any mentioning of which version of OpenLayers is supplied with the 3.1.299 build of Map Suite Web. This thread came up, but I can't see it here either ?


So I need to verify, whether build 3.1.299 dated Nov 16 is supplied with OpenLayers 2.8 ?


I'm asking because I will need 2.8 for its snapping feature.


Btw, is it possible to insert a newer version of OpenLayers into an existing Map Suite installation ?


 



Hi Lars, 
  
 We upgraded our OpenLayers library to 2.8 since 3.1.273. So you can use this feature with our 3.1.299. Please try this feature and let me know if you have any questions. 
  
 On the other hand, OpenLayers is a pure JavaScript library; we need modify some code from the OpenLayers library for server side supports. So you cannot simply insert a newer version of OpenLayers into the existing MapSuite installation. 
  
 Hope it makes sense, 
 Howard

I’m (still) running with the evaluation version, which I downloaded on November 17th. 
  
 But the snapping doesn’t seem to work. Do I need to enable it thru MapSuite ?  
  
 I thought it was set to work per default in OpenLayers ? 


Lars I,



The snapping feature is not set as default in the OpenLayers. It's another control which you need to create and add into the OpenLayer's map object. With our MapSuite web edition, you can simply change our installed sample "Samples\MapShapes\DrawEditShapes.aspx" to satisfy your requirement. Please replace the function which you change the edit type to "ChangeDrawType"; for example "OnClientClick="ChangeDrawType('Line');return false;""


var tgMap = null;
var snapControl = null;
var OnMapCreated = function(map) {
    tgMap = map;
}

var ChangeDrawType = function(typeName) {
    Map1.SetDrawMode(typeName);
    var editOverlay = tgMap.getLayersByName("EditOverlay")[0];
    if (!snapControl) {
        snapControl = new OpenLayers.Control.Snapping({
            layer: editOverlay,
            targets: [editOverlay],
            greedy: false
        });
    }
    snapControl.activate();
}



Please have a try and let me know how it works.



Thanks,

Howard