ThinkGeo.com    |     Documentation    |     Premium Support

Class Diagram ThinkGeo MapSuite Desktop edition full 3.0

I need the tutorial and class diagram (OMD) for ThinkGeo MapSuite Desktop edition full 3.0.


 


I urgently need these items to ease my development of ThinkGeo application in our company.



Kaushal, 


I am sorry that we didn’t have a tutorial or a class diagram right now.  They are definitely on the radar but we don’t have a chance to complete and release them. Sorry for the inconvenience and we will improve this part in the future.
 
For the tutorial part, you can have a look at the quick start guide for start. Also please have a look at the documentation along with the product for every Class and API for detail, or you can have a look at our learning videos here.  About the class diagram, maybe there are not too much I can do for you, but still I would like to introduce some main classes which I hope can help.
 
There are 2 namespaces in Desktop Edition, one is Map Suite Core and the other is Map Suite DesktopEdition. Map Suite Core includes all the main classes and Map Suite DesktopEdition includes the Desktop related classes.
 
There are mainly 5 groups of layers in Map Suite Core. They are Layers, Data, Shapes, Styles and Drawings. Here let’s talk about them one by one.
 
Layers:
A layer defines the data and its drawing style. It holds the featureSource --- which represents what to draw; also it holds the Styles---which represents how to draw. So you can see layer is the place to specify where the data is and how to draw it out.
 
There are mainly 2 kinds of Layer, one is FeatureLayer and the other is RasterLayer. The classes with the suffix of FeatureLayer (like ShapeFileFeatureLayer, MsSql2008FeatureLayer, OracleFeatureLayer, …) are all inherited from FeatureLayer and the ones ends with RasterLayer (such as GdiPlusRasterLayer, GeoTiffRasterLayer, MrSidRasterLayer) are all inherited from RasterLayer.  There is another one called AdornmentLayer, which is mainly for adding adornment on the map like ScaleBar or Compass. Besides that, we have GoogleMapLayer for connecting to Google Map; we have GroupLayer to group several layers together as one, as well as RestrictionLayer for adding some restrictions. We will have more maybe in the future and you can also create your own by inheriting the Layer class.
 
Data:
There are a lot of data related classes; the most important one is FeatureSource / RasterSource, which stands for the data for FeatureLayer and RasterLayer.  Similarly, all FeatureSources Classes have the suffix of “FeatureSource” / “RasterSource” so you can easily tell. Sure you can create your own FeatureSource if you want by inheriting the FeatureSource/RasterSource class.
 
Another important class about Data is Projection. We have a Proj4Projection class using PROJ4 as the projection engine; you can also add your own engine by inheriting the class Projection and override the methods.
 
Style:
Style stands for the way you render the data. All the styles are inheriting from the class Style and ends with “Style”. There are some simple classes like AreaStyle, LineStyle, also we have some advanced styles built in like ClassBreakStyle, HueFamilyAreaStyle, RegexStyle. Of course you can easily create a style yourself by inheriting the base class Style.
 
Shape:
A shape simply stands for one ShapeJ. We have LineShape, PointShape, PolygonShape etc and as you have thought already, they are all inhering from the same base class “BaseShape”. You can easily create your own shape for example Donut by inheriting from the base class.
 
Drawing: 
The most important class in this group is GeoCanvas, which stands for the canvas we will draw on, kind of the Graphs in GDI+.  We have GDIPlusGeoCanvas/WPFGeoCanvas built in, and you can create your own Canvas by inheriting the base class GeoCanvas. This part is usually difficult but it provides you a lot of possibilities for much cool stuff.  I used to write a simple KMLGeoCanvas which can “draw” a map as KML, you can almost “draw” the feature with whatever format you want by having a good inheritance.
 
Overlay:
In the namespace of MapSuite Desktop, there is only one important class I think which is Overlay. An overlays holds a collection of Layers and draw all the layers on one image; it’s the smallest unit for caching and tiling. We also have some subclasses like LayerOverLay, GoogleMapsOverlay which inherits from the base class.
 
 
This is just a general introduction for the classes we have in Desktop Edition. Sorry again that we cannot provide you a Class Diagram to make you easier get the general idea. Hope the above introduction makes our product easier to understand and if you have any issues, please feel free to ask here, we will try our best to provide you a great answer.
 
Thanks,
 
Ben