ThinkGeo.com    |     Documentation    |     Premium Support

OverviewMap not showing layers

Hello,


I am able to set thinkgeo minimap to work, yet, i have the need to costumize the control to create a separate logic from the main map. I'm having some trouble doing this:  


   this.OverviewMap = this.Map.get_MapEngine().getControl('OverviewMap');


        if (this.OverviewMap != null) {

        if (this.Map != null)

            var mapParser = this.Map._MapParser;




        var layers = new Array();


        for (var i = 0, layerIndex = 0; i < this.Layers.length; i++) {

            layers.push(mapParser.getLayerByJson(this.Layers));

        }


 this.OverviewMap.layers = layers;


this.OverviewMap.update();


 }


 The final result is a gray miniMap with no layers. What i'm i doing wrong? I've tried diferent aproaches. I've tried building the overviewMap myself and adding it to map controls collection like this: 


var controlOptions = {

 maximized: true,        

 layers: layers

};


this.OverviewMap = new OpenLayers.Control.OverviewMap(controlOptions);

  

this.Map.get_MapEngine().addControl(this.OverviewMap);


 


 


In this case, how do i get map options without having to write it one by one?


 


 


 


 



Hi David, 
  
 Welcome to ThinkGeo support forum. 
  
 We’re working on your issue, will let you know if we have any progress. Please keep an eye on this thread. 
  
 Regards, 
  
 Ivan

Thank you,  
  
 Looking forward to hear from you.

Hi David,


For your reference, here are answers for your questions:


1. The final result is a gray miniMap with no layers. What i'm i doing wrong?


In OpenLayers.Control.OverviewMap., the source code of method "update" is below:


update: function() {
if(this.ovmap == null) {
this.createMap();
}

if(this.autoPan || !this.isSuitableOverview()) {
this.updateOverview();
}

// update extent rectangle
this.updateRectToMap();
}


So if we need to customize the OverviewMap, we may need to set null to ovmap first.


this.OverviewMap.ovmap = null;
this.OverviewMap.layers = layers;
this.OverviewMap.update();


2. In this case, how do i get map options without having to write it one by one?


The mapOptions is in the format of JSON. It's a property in OpenLayers.Control.OverviewMap. I'm not sure what do you mean by saying "get map options without write it one by one", do you mind provide us detailed description?


Regards,


Ivan