====== Map Suite Wpf Desktop Edition Spatial Functions Samples ====== {{section>upgrade_map_suite_to_10.0}}
==== Adjacent Road Search ====
{{wpfedition:codesamples:Map_Suite_Wpf_Desktop_Edition_Sample_AjacentRoadSearch.png?300x180}}
[[Source_Code_WpfDesktopEditionSample AjacentRoadSearch.zip|View Source]] {{filehistory:WpfDesktopEditionSample_AjacentRoadSearch.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
This WPF project shows how to get a route between 2 adjacent roads even if they don't intersect within an allowable tolerance. It’s based on Map Suite Geometry Topology module and does not require the Map Suite Routing Extension. **Note:** This sample requires MapSuiteCore.dll newer than [[map_suite_daily_builds_guide|Daily development build]] version 9.0.178.0 or [[map_suite_daily_builds_guide|Daily Production Build]] version 9.0.0.178.
----
==== Clipping On Line Layer ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Clipping On Line Layer.jpg?300x180}}
[[Source_Code_WpfDesktopEditionSample ClippingOnLineLayer CS 110210.zip|View Source]] {{filehistory:WpfDesktopEditionSample ClippingOnLineLayer CS 110210.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
This Wpf project completes the series of projects dedicated to the clipping geoprocessing. We already saw how to perform clipping on a polygon based layer in “Clipping” and on a point layer in “Clipping On Point Layer”. Here we show how to perform the clipping geopressing on a line based layer. As for the same operation on a polygon based layer, the key geometric function is GetIntersection. We will also appreciate the operation of creating a layer from scratch as in addition to the geometric operation itself, geoprocessing also involves creating a result layer from the original layers, the clipping layer and the clipped layer. You will need to get in the Dev Daily Build the latest MapSuiteCore.dll and WpfDesktopEdition.dll as references as the GetIntersection API for line based shapes was added only recentely.
----
==== Create Inner Ring ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Create InnerRing.jpg?300x180}}
[[Source_Code_DesktopEditionSample_CreateInnerRing_CS_100811.zip|View Source]] {{filehistory:DesktopEditionSample_CreateInnerRing_CS_100811.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
In today’s Desktop project, we learn how to create inner rings to a polygon based on another polygon using the GetDifference function. We also learn how to perform Union on a collection of polygon and how to set up the event TrackEnded. To use this app, you need to track a polygon, double click to end it and it will create an inner ring from the unioned result of the polygons completely within the tracked polygon. You can look at the TrackEnded event handler to see all the different operations taking place for that task.
----
==== Distance Query on Projected Layers ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Distance Query On Projected Layers.png?300x180}}
[[Source_Code_DesktopEditionSample DistanceQueryOnProjectedLayers CS 101228.zip|View Source]] {{filehistory:DesktopEditionSample DistanceQueryOnProjectedLayers CS 101228.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
In this sample, we learned how to use the method GetFeaturesWithDistanceOf when the data is projected. We just input the unit which is projected to, do not need to mind what the real unit is for the internal data before projection. It works fine with Map Suite Assemblies 4.5.54.0 or later.
----
==== Distance Query on WrapDatelineMode ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Distance Query On Wrap Dateline Mode.jpg?300x180}}
[[Source_Code_WpfDesktopEditionSample DistanceQueryOnWrapDatelineMode CS 110112.zip|View Source]] {{filehistory:WpfDesktopEditionSample DistanceQueryOnWrapDatelineMode CS 110112.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
In this Wpf sample is on the same theme as the previous sample WrapDatelineMode. Here we show how to take advantage of the projection class WrapDatelineProjection for doing spatial query when on a “virtual map”. From this spatial query example, the developer should understand how the same principle using the same projection class can be applied for other operations such as Spatial Queries, Identify etc. In order to run this sample, you will need the latest Dev Daily Build for Wpf with references to MapSuiteCore.dll and WpfDesktopEdition.dll.
----
==== FeatureIdsToExclude ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample FeatureIdsToExclude.jpg?300x180}}
[[Source_Code_DesktopEditionSample_FeatureIdsToExclude_CS_100519.zip|View Source]] {{filehistory:DesktopEditionSample_FeatureIdsToExclude_CS_100519.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
The purpose of this project is to show how to use the FeatureIdsToExclude collection of FeatureLayer. In the project, you will see how you can exclude some features from being part of the GetFeaturesNearestTo function. Using that collection is a handy method for not taking into account some features in doing spatial queries, searching and even drawing without having to change the structure of the layer or create another layer.
----
==== Get Feature Clicked On(Desktop) ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Get Feature Clicked On Desktop.jpg?300x180}}
[[Source_Code_DesktopEditionSample_GetFeatureClickedOn_CS_100715.zip|View Source]] {{filehistory:DesktopEditionSample_GetFeatureClickedOn_CS_100715.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
The purpose of this project is to show the technique for finding the feature the user clicked on. To give the user the expected behavior, a buffer in screen coordinate needs to be set so that the feature get selected within a constant distance in screen coordinate to where the user clicked on regardless on the zoom level. This project will show how to accomplish that task regardless of the layer type (polygon, line or point based) and the zoom level of the current extent of the map. This is a Desktop project.
----
==== Intersect Line ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Intersect Line.jpg?300x180}}
[[Source_Code_DesktopEditionSample_IntersectLine_CS_100728.zip|View Source]] {{filehistory:DesktopEditionSample_IntersectLine_CS_100728.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
In today’s project, we show how to split a line based on an intersecting line. To accomplish this task, basically two steps are needed. First, you need to find the crossing point using the GetCrossing function and then you split the line based on the crossing point using the GetLineOnLine function. If you are in the utilities industry working with electric network, gas pipes etc, you will find this project useful.
----
==== Polygon Shapes To Multipolygon Shapes ====
{{wpfedition:codesamples:Map_Suite_Wpf_Desktop_Edtion_Sample_Polygon_Shapes_To_Multipolygon_Shapes.jpg?300x180}}
[[Source_Code_WpfDesktopEditionSample_PolygonShapesToMultipolygonShape_CS_101126.zip|View Source]] {{filehistory:WpfDesktopEditionSample_PolygonShapesToMultipolygonShape_CS_101126.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
In this Wpf project, we show how to create a MultipolygonShape from various PolygonShapes. Since a collection of PolygonShapes cannot be directly cast to a MultipolygonShape, we show the technique to build a MultipolygonShape passing an IEnumerable of PolygonShape. This is a Wpf sample and you will need the references for MapSuiteCore.dll and WpfDesktopEdition.dll.
----
==== Shortest Line Between Two Features with Split ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Shortest Line Splitting Lines.jpg?300x180}}
[[Source_Code_WpfDesktopEditionSample_FindShortestLineandSplittingLines_CS_140425.zip|View Source]] {{filehistory:WpfDesktopEditionSample_FindShortestLineandSplittingLines_CS_140425.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ MVC \ Silverlight \ Services \ WPF ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
This sample will show you how to find the closest line between two features by using the //GetShortestLineTo// API and how to split a line at a given point using the //GetLineOnALine// API. These APIs can be very useful when doing spatial analysis and editing of features. This sample also allows you to dynamically alter the test features using the //EditOverlay// so you can try out different scenarios and see the results quickly. A MapShapes layer is used to display and style the individual results.\\ \\ **Note:** This sample requires that you reference DLLs from the Map Suite WPF Desktop Edition [[Map Suite Daily Builds Guide|daily development build]] version 7.0.318.0 or later.
----
==== Sweep Angle Desktop ====
{{wpfedition:codesamples:Map Suite Wpf Desktop Edition Sample Sweep Angle Desktop.jpg?300x180}}
[[Source_Code_DesktopEditionSample_SweepAngle_CS_100506.zip|View Source]] {{filehistory:DesktopEditionSample_SweepAngle_CS_100506.zip|C# Download}}
[[Map Suite Samples Applies To|Applies To: Desktop \ Web \ Silverlight \ Services \ Wpf ]] \\ [[Map Suite Samples Alternate Languages | Need it in another language?]]
The purpose of today’s project is to show how to make a desktop project from a Servicess one. Many of the projects published in the Code Community are in the Servicess edition because the only reference for Map Suite required for running them is MapSuiteCore.dll. That dll comes in any of the Map Suite products. We are taking the example of the “Sweep Angle” Servicess project to show how to adapt it to a Desktop project. With the understanding of some basic concepts such as Overlay, you will be able to easily convert a Servicess project to a Desktop one. So, for this project, you will need the references for both MapSuiteCore.dll and DesktopEdition.dll. Next, we will see how to convert a Servicess project to a Web one.
---- {{page>map_suite_services_edition_spatial_functions_samples}}