ThinkGeo.com    |     Documentation    |     Premium Support

GoogleMapsLayer

Hi every one


1,    I am using GoogleMapsLayer to display google maps. It works fine during online mode. It also caches the tiles in the local drive during online mode.


2.    In the offline mode when there is on internet this also works fine and displays the pre-cached tiles. But when it moves to the area that is not visited before or to the area that has no pre-cached tiles in the local drive then it gives the following error and application terimnates


                               The remote name could not be resolved: 'maps.googleapis.com'


3.     Please tell me that how can I handle this exception.


Code is as following


private void Form1_Load(object sender, EventArgs e)

{


winformsMap.MapUnit = GeographyUnit.Meter;


GoogleMapsLayer googleMapLayer = new GoogleMapsLayer(@"C:\Test", stringKey);

googleMapLayer.MapType = GoogleMapsMapType.Hybrid;


LayerOverlay layeroverlay = new LayerOverlay();

layeroverlay.Layers.Add(googleMapLayer);

winformsMap.Overlays.Add(layeroverlay);

winformsMap.Refresh();


}


Regards


Atif Ahmed




Hi Atif, 
  
 Please try the set the DrawingExceptionMode with DrawException: 
  
            GoogleMapsLayer googleMapLayer = new GoogleMapsLayer(@“C:\Test”, stringKey);
            googleMapLayer.MapType = GoogleMapsMapType.Hybrid;
            googleMapLayer.DrawingExceptionMode = DrawingExceptionMode.DrawException;
 
 Hope it works for you and if any questions, don’t hesitate to let us know. 
  
 Regards, 
 Troy 


Hi Troy

1.   Thank you for quick response.

2.   Yes it worked very well and it changes the color or displays a blank map for the area where, there is no pre-cached map available.

3.   Now also tell me another way that how I can through/catch an exception for the same problem so I can display a message that "Map for this area is not available"

Regards

Atif

Hi Atif, 
  
 Yes, we can catch the exception by registering the DrawingException event, but we can’t custom the error message to display on the map: 
  
             googleMapLayer.DrawingExceptionMode = DrawingExceptionMode.DrawException; 
             googleMapLayer.DrawingException += new EventHandler<DrawingExceptionLayerEventArgs>(googleMapLayer_DrawingException); 
  
 Hope it helps. 
 Regards, 
 Troy