ThinkGeo.com    |     Documentation    |     Premium Support

Generate Tiles Example

I am using Web Edition version 3.1.299.0.  I found the Generate Tile example project here:


gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/6274/afv/topic/afpgj/1/Default.aspx#11328


I tried to get this running, but I get an error on this line:


tileCache.SaveTiles((Bitmap)bitmap.Clone(), tileCache.TileMatrix.BoundingBox);


The process in in the second iteration of the i loop ( i = 1).  The error appears to be in the arguement tileCache.TileMatrix.BoundingBox


The error is "Input string was not in a correct format."  The value of tileCache.TileMatrix.BoundingBox is= {-180, 90, 180, 90}.


I also noticed that the projects starts without any map showing.  Am I using this worng?


Charles


 



Hi, Charles 
  
 No, you are right. We don’t add any layer to may control. I have downloaded the sample project, and test it with the latest DLL package but it works well. So please try it again with the latest DLLs.  
 If you still have problem about it, please provide us with a simple sample which could recreate your problem so that we could address it quickly. 
  
 Thanks, 
 Khalil 


Khalil,


I downloaded version 4 of Full Web Edition.  I am now using version 4.0.0.0 of both MapSuiteCore and WebEdition.  By the way, the installer still says version 3.  I opened the solution and replaced the references to MapSuiteCore and WebEdition.  I noticed that the data referenced is the DeskTop edition shape file, but that file is in the specified location.  When I run the solution, a page appears with the zoom bar, two buttons, and a text box (no map image).  the text box says "c:\temp".  I press the Generate Tiling button and the error occurs.  It is the same error as stated above.


I am running Visual Studio 2008 version 9.0.30729.1 and .Ner Framework 3.5 SP1. 


Charles












Charles,


 


First off, I want to confirm something with you.  Are you sure the tileCache.TileMatrix.BoundingBox is {-180, 90, 180, 90}?


If that’s true, please check the code where set the MapSuiteTileMatrix. The y of the UpplerLeft point can'


t have the same value with the y of LowerRight point.


I make a simple sample with the state shape files and it runs well in my machine. Please refer to the attachment.


 


If you still can’t run it well in your own machine, please provide us your sample code and the environment.


 


Thanks,


Khalil




2077-GenerateTiling.zip (212 KB)

Khalil, 
  
 You are correct.  I may have mistyped the bounding box in my previous message but I’m not sure what it should have read if I did. 
  
 I am running the code exactly as supplied.  I unzipped the code into my Visual Studio 2008 Projects directory.  The only change that I made is to remove and re-add the references to the MapSuite libraries.  The libraries or the project are in a different location on my computer so the references were incorrect.  Your new project is considerably larger that the original, but that may be the extra libraries (GeoAPI and NetTopologySuite) that are included.   
  
 I open the solution in Visual Studio and hit run.  The default page appears displaying the United States.  I hit the “Generate Tiling” button. 
  
 I still get the same error in the same location, but now the error occurs on the first iteration of the loop (i = 0).  tileCache.TileMatrix.BoundingBox = {-180,270,180,-90}.  I can see that this is not a valid bounding box for MapUnit.DecimalDegree but it is being set when the tileMatrix variable is defined.  I can see this value change if I modify the tileHeight or tileWidth variables, or if I change the ZoomLevels used in the GetAllZoomLevels method. 
  
 I’m not sure what you need in the way of my environment.  As I stated I am running your code as supplied, so I’m not really running any sample code I can send you unless you want me to zip up what you sent me and send it back.  I am running version 4.0.0.0 of the MapSuite libraries.  My OS is Windows XP Pro SP3.  My browser is FireFox 3.6.3.  I am using Visual Studio 2008 Professional version 9.0.30729.1 SP.  My .Net Framework is version 3.5 SP1. 
  
 Charles

Hi, Charles 
  
 The default cache folder is "c:\temp" and I am sure that there are some other folders whose name is not numeric still exist in this folder, and the problem lies in that. 
 I suggest that you change the default folder of "c:\temp" to another and try it again, and then you will get the right result. 
  
 Thanks, 
 Khalil

Khalil, 
  
 Thanks.  That did it.  I take it that the image temporary directory shouldn’t contain any other files. 
  
 Is there any sample code showing how to use the tiles once they are produced? 
  
 Charles

Charles, 
  
 Glad to see the problem has been resolved. In fact we have provided the API for getting tiles from TileCache the same with save tiles. And every tile has a Bitmap property that’s the image for the tile. So that now you could use it for what you want. 
  
 Thanks, 
 Khalil