ThinkGeo.com    |     Documentation    |     Premium Support

GoogleMapsLayer using Premier license

I am using a GoogleMapsLayer to export large maps.


If I use SingleTile, it only lets me go up to 650x650. This is the limit for the free version of static maps. Premier allows up to 2048x2048, but it doesn't look like you support that. Can you add support?


Also, if I use MultiTile, it is tiliing 650x650 images, instead of tiling 2048x2048 images. I am exporting 3600x3600 maps, and that gives me 49 Google logos and notices. If there were an option to use 2048x2048 images, it would only be up to 9 logos and notices (not to mention, less HTTP requests to Google).



Rob, 
  
 The limition for tile size is because the default GoogleMaps license type is standard when you call default constructor of GoogleMapsLaer, if you are premier user, you can try to use another constructor and pass in the clientId and privateKey which will work for premier license. 
  
 Please let me know if you have any questions. 
 Thanks 
  
 James

I tried using that constructor, but I get an error saying missing license key. If I set a breakpoint after the constructor, both ClientId and PrivateKey are still null. So that sounds like a different bug. 



I have been setting the properties as follows:

GoogleMapsLayer googleLayer = new GoogleMapsLayer();
googleLayer.MapType = GoogleMapsMapType.Terrain;
googleLayer.Name = "GooglePrint";
googleLayer.ClientId = ConfigurationManager.AppSettings["GoogleClientID"];
googleLayer.PrivateKey = ConfigurationManager.AppSettings["GooglePrivateKey"];
googleLayer.TileMode = GoogleMapsTileMode.SingleTile;  // or MultiTile

And it still seems to be limited by 650x650 tiles in both TileModes.



 


Hi, Rob
Yes, that’s a bug for GoogleMapsLayer. We will fix it immediately, any progress on it we will let you know first.
Thanks,
Khalil

Rui,


We have fixed this issue and it should be available in the latest Daily Build (4.5.23.0 or later). Please get it through helpdesk.thinkgeo.com/helpdesk/login.aspx.


Thanks,


Khalil



I don’t see a 4.5.23.0 under daily dev builds, only 4.5.21.0.  I tried it out with the latest daily prod build, 4.5.0.31, and the bugs are still present. Both the constructor bug, and the original bugs I described.

 


Hi, Rob
Please get the latest Development Daily Builds (4.5.32.0 or later), and it should be the one that has fixed the issues. The builds fails in the past few days, so that you can’t get it, anyway we have fixed that.
Thanks,
Khalil

I grabbed the new dev daily build (4.5.32.0), and it looks like the constructor bug is fixed, but the original bugs I described are still present. 
  
 I don’t think you understand the problem… 
  
 If I manually build a request to Google’s Static Maps with my clientID and sign it with my privateKey, I can get images up to 2048x2048 pixels.  
 If I use GoogleMapsLayer, I can only get up to 650x650 pixels. So it looks like there is something in your code that limits the size.

Rob, 
  
 Could you provide your manually request url to us? You can hide your clientId and privateKey but keep the string format the same structure.  
  
 Thanks 
 James

No need to hide my privateKey, since it is only used to sign the url with a signature: 
  
 maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=2048x2048&client=gme-decisioninsite&sensor=false&signature=a5B0W0Hc9FGgQ8Ie0_So-ajVF1w=

Rob, 
  
 I compare the request url with yours, they are almost the same, just has two addtional items: &maptype=roadmap&format=jpg-baseline, but I don’t think they will cause the smaller size problem, so we will add an event which will pass out request uri that you can debug at your side, this new API will available at version 4.5.37.0 
  
 Thanks 
 James

The problem still exists in version 6.0. 
 When we put the breakpoint in the creating request event,  
 this is the URL 
 maps.google.com/maps/api/staticmap?center=33.808829,-117.891551&zoom=17&size=512x512&maptype=roadmap&format=jpg-baseline&client=gme-decisioninsite&sensor=false&signature=BUbuE7ACsGPXYgyC0HZahf7Q5dI 
  
 So it is still limiting the tile size to be 512X512 where our license allows up to 2048x2048.

Hello Kenny,  
  
 Thanks for your post, I want to know which mode of tile are you using? If you are using MultiTile, we force the tile size as 512*512, it’s a const value. If you are using SingleTile, we will automatically set the size as the control size. 
  
 Regards, 
  
 Gary

I’m using Multi Tile but i’m sure this is an easy fix for you guys. 
 How soon do you think this can be fixed?

Kenny, 
  
 Can you use Single Tile Mode? We make each tile 512*512 in Multi Tile mode to make it easy to stitch and cache, for both premium users and free users.  Can you let us know your scenario? 
  
 Ben

No we need to use Multi Tile mode for exporting large image 3600 X3600 or even larger. 
 It is exactly what Rob stated in the first post. 
  
 " I am exporting 3600x3600 maps, and that gives me 49 Google logos and notices. If there were an option to use 2048x2048 images, it would only be up to 9 logos and notices (not to mention, less HTTP requests to Google)." 


Kenny,


We've exposed the APIs GoogleMapsLayer.TileHeight and GoogleMapsLayer.TileWidth in the latest version, please get the 6.0.75.0 and have a try.


Thanks,


Edgar



Cool, it works.

Hello Kenny,  
  
 I’m glad it’s working now, don’t hesitate to let us know your problem.  
  
 Regards,  
  
 Gary

Can you guys expose the staticmap request string to be edittable? We want to be able to add styled maps parameters.