Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

How to: Manually Load Cartesian Data to a Geo Map Using Predefined Coordinate Converters

  • 2 minutes to read

To load a Cartesian map shapefile to a Map Control, do the following

View Example

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:BuildInCoordinateConverters"
        xmlns:dxm="http://schemas.devexpress.com/winfx/2008/xaml/map" 
        x:Class="BuildInCoordinateConverters.MainWindow"
        Title="MainWindow" MinHeight="350" MinWidth="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <ComboBox Name="lbMapData" Grid.Column="0" SelectedIndex="0">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="File Uri:" Margin="2,2,2,2"/>
                            <TextBlock Text="{Binding FileUri}" Margin="2,2,10,2"/>
                            <TextBlock Text="Coordinate Converter:" Margin="10,2,2,2"/>
                            <TextBlock Text="{Binding CoordinateSystem.CoordinateConverter}" Margin="2,2,2,2"/>
                        </StackPanel>
                    </DataTemplate>
                </ComboBox.ItemTemplate>

                <!--region #Albers-->
                <local:MapData FileUri="Shapefiles/Albers/switzerland.shp">
                    <local:MapData.CoordinateSystem>
                        <dxm:CartesianSourceCoordinateSystem>
                            <dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                                <dxm:AlbersEqualAreaConicCartesianToGeoConverter StandardParallelN="60.0" StandardParallelS="20.0"
                                                             Ellipsoid="{x:Static dxm:Ellipsoid.GRS80}"
                                                             ProjectionCenter="40,-96"/>
                            </dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                        </dxm:CartesianSourceCoordinateSystem>
                    </local:MapData.CoordinateSystem>
                </local:MapData>
                <!--endregion #Albers-->
                <!--region #Lambert-->
                <local:MapData FileUri="Shapefiles/Lambert/Belize.shp">
                    <local:MapData.CoordinateSystem>
                        <dxm:CartesianSourceCoordinateSystem>
                            <dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                                <dxm:LambertConformalConicCartesianToGeoConverter StandardParallelN="60" StandardParallelS="20"
                                                                              ProjectionCenter="40,-96"
                                                                              Ellipsoid="{x:Static dxm:Ellipsoid.GRS80}">
                                </dxm:LambertConformalConicCartesianToGeoConverter>
                            </dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                        </dxm:CartesianSourceCoordinateSystem>
                    </local:MapData.CoordinateSystem>
                </local:MapData>
                <!--endregion #Lambert-->
                <!--region #TransverseMercator-->
                <local:MapData FileUri="Shapefiles/TransverseMercator/israel.shp">
                    <local:MapData.CoordinateSystem>
                        <dxm:CartesianSourceCoordinateSystem>
                            <dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                                <dxm:TransverseMercatorCartesianToGeoConverter Ellipsoid="{x:Static dxm:Ellipsoid.WGS84}"
                                                                           ProjectionCenter="0,33" ScaleFactor="0.9996"
                                                                           FalseNorthing="0" FalseEasting="500000">
                                </dxm:TransverseMercatorCartesianToGeoConverter>
                            </dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                        </dxm:CartesianSourceCoordinateSystem>
                    </local:MapData.CoordinateSystem>
                </local:MapData>
                <!--endregion #TransverseMercator-->
                <!--region #UTM-->
                <local:MapData FileUri="Shapefiles/TransverseMercator/israel.shp">
                    <local:MapData.CoordinateSystem>
                        <dxm:CartesianSourceCoordinateSystem>
                            <dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                                <dxm:UTMCartesianToGeoConverter UtmZone="36" Hemisphere="Northern"/>
                            </dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                        </dxm:CartesianSourceCoordinateSystem>
                    </local:MapData.CoordinateSystem>
                </local:MapData>
                <!--endregion #UTM-->
                <!--region #MercatorAuxiliary-->
                <local:MapData FileUri="Shapefiles/MercatorAux/montenegro.shp">
                    <local:MapData.CoordinateSystem>
                        <dxm:CartesianSourceCoordinateSystem>
                            <dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                                <dxm:MercatorAuxiliarySphereCartesianToGeoConverter Ellipsoid="{x:Static dxm:Ellipsoid.WGS84}"
                                                                                SphereType="0" ProjectionCenter="0,0"/>
                            </dxm:CartesianSourceCoordinateSystem.CoordinateConverter>
                        </dxm:CartesianSourceCoordinateSystem>
                    </local:MapData.CoordinateSystem>
                </local:MapData>
                <!--endregion #MercatorAuxiliary-->
            </ComboBox>
            <Button Grid.Column="1" Content="Locate Loaded Data" Click="Button_Click"/>
        </Grid>
        <dxm:MapControl Grid.Row="1" Name="map">
            <dxm:ImageTilesLayer>
                <dxm:ImageTilesLayer.DataProvider>
                    <dxm:BingMapDataProvider BingKey="YourBingKey"/>
                </dxm:ImageTilesLayer.DataProvider>
            </dxm:ImageTilesLayer>
            <dxm:VectorLayer ShapeFill="#40FF8800">
                <dxm:ShapefileDataAdapter 
                    SourceCoordinateSystem="{Binding Path=SelectedValue.CoordinateSystem, ElementName=lbMapData}" 
                    FileUri="{Binding Path=SelectedValue.FileUri, ElementName=lbMapData}"/>
            </dxm:VectorLayer>
        </dxm:MapControl>
    </Grid>
</Window>