Home

Welcome to the Map Suite Code Community!

First off, I highly recommend you check out this entire page to see the various features of the new community.

The goal of this community is to provide a place for Map Suite developers to share extensions. We invite you to look around and let us know what you think.

Right now we are just getting things setup and integrating many of the projects we had previously hosted in the Developer Blog discussion forum.

Do You Have Code You Would Like to Share?

If you have developed an extension or some handy routines and would like to share them with the community, let us know. We would be happy to create your own project in the community. Having your own project gives you total control over:

  • Issue Tracking
  • Wiki
  • Discussion Forums
  • Source Repository
  • Member Roles

First create an account and then e-mail to let us know a little bit about your project and what you would like to name it.

How Do I Access a Project's Source Repository?

Currently we are still working on the source integration and plan to use Subversion as our source control system. Once Subversion is integrated, if you intend to pull down the source code or make contributions then you will need a Subversion client. For the short term, we will zip up the source projects and offer them as zip files.

How are the Projects Licensed?

Any code that the community posts is covered under the Microsoft Public License (Ms-PL). This license is certified by the Open Source Initiative to meet the requirements of the Open Source Definition . It is a very easy to understand and liberal license so that you can re-use the code in commercial packages.

Do You Have a Suggestion or Comment?

This community site was created based on feedback from our customers and your feedback will shape its future direction. If you have constructive suggestions or comments we would love to hear them. While we cannot always act on every suggestion, we will record and review them as part of our continuous improvement process.

See All Projects...

Latest projects

  • Projection Distance LineStyle (09/02/2010 11:05 AM)


    This Web project is similar to the project “Distance Line Style”. Here we show how to use a projection of choice different from the projection used on the map. For example, you may have your map using Google map as a background. Google map uses Spherical Mercator projection which is not ideal for distance measurements, that is why using a more appropriate projection for distance measurement such as State Plane will give more accurate results. The CustomDistanceLineStyle inheriting from LIneStyle has the logic built in to have the distance calculated based on a projection of choice instead of the projection of the map.

  • TextStyle for Multi Line (08/31/2010 04:28 PM)


    If you are labeling features based on MulilineShapes, using the default TextStyle, only one line of the collection of lines making up the MultilineShape is going to be label. In today’s project, we show how to create a new class inheriting from TextStyle that will label all the lines of the MultilineShapes. That behavior is similar to the property LabelAllPolygonParts of DefaultTextStyle for polygons.

  • Current Extent to Bitmap (08/29/2010 01:18 PM)


    In today’s project we learn how to convert to bitmap the current extent of the map. In order to have the bitmap georeferenced or being tied to the ground an accompanying world file needs to be created. That way it can be used as an image layer along with the other layers of the same projection (in this case geodetic). To test the result, you can load the bitmap to Map Suite Explorer and add a vector layer in geodetic to see how the two layers align with each other.

  • Dragging Vertex (08/27/2010 09:47 AM)


    The purpose of today’s project is not so much as show a new technology as to show an improvement in an existing one. We are already familiar with EditInteractiveOverlay with projects such as “Dragged PointStyle with Label”, “Snap To Layer” and “Snapping to Vertex”. But those projects showed EditInteractiveOverlay on small shapes. Using EditIntercticeOverlay on complex shapes became not very responsive. We improved that and now you can drag, resize, rotate and drag individual vertex of a complex polygon made of thousand of vertices with good responsiveness as you can see in this example.

  • Routing Tolerance (08/24/2010 11:54 AM)


    In today’s project, we will see how to better leverage the GetRoute function of the RoutingEngine by doing some spatial query. The GetRoute function allows you to pass two PointShapes for the start and end points of the route to build. If a PointShape is not on a line segment of the routable street data, the closet point on the closest segment will be used regardless of how far the PointShape is. Using the Spatial Query function, GetFeaturesWithinDistanceOf, we check if the PointShapes passed as start and end points are within some tolerance before proceeding with building the route.