Winform アプリケーションに WPF MapControl コントロールを実装しました。
(基本的に、WPF ユーザー コントロール プロジェクトを Winform ソリューションに追加します。WPF コントロールをドラッグ アンド ドロップします。私は DevExpress WPF MapControl を選択しましたが、Microsoft のバリアントまたはその他のコントロールでも問題なく動作します。プロジェクトを一度ビルドしてから、ドラッグ アンド ドロップします。 Winform プロジェクトに表示されるコントロール. プロパティを設定/取得したり、メソッドを公開したりする場合は、関連する C# コード ビハインドに移動し、それを公開します。)
問題: 2 つの GeoPoint 引数 (経度/緯度のペア) を持つメソッドを作成したいと考えています。次に、メソッドは、BingMaps または OpenMapDocs を使用して、ポイント A から B へのルートを表示する最適なルートを表示します。Google マップを考えてみてください。Winform 側のボタンまたはリンクからこのメソッドを呼び出します。
これで、トランジションとメソッドを実装する方法が明確に理解できました。いわばそこにいた、それをした。コントロールのコード ビハインド内に 2 つの GeoPoint の経度/緯度のペアがあります。
私の問題は、XAML 側を処理する方法です。私はまだ WPF と XAML 側に精通していません。
DevExpress は次のように述べています。
XAML ユーザー コントロール内でルート データ サービスを構成する必要があります。
それは最も役に立ちませんでした。
何か案は?
私は.Net 4.5を使用しています。
DevExpress MapControl の XAML コードを次に示します。質問は Microsoft MapControl と同じです。どちらのコードも非常によく似た XAML を共有しており、少なくとも私のビジュアルからはわかります。
<UserControl x:Class="bvMaps.MapDevex"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxm="http://schemas.devexpress.com/winfx/2008/xaml/map"
mc:Ignorable="d"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<Grid x:Name="MapContainer">
<dxm:MapControl HorizontalAlignment="Left" Margin="0,0,0,0" Name="mapControl1" VerticalAlignment="Top">
<dxm:InformationLayer>
<dxm:InformationLayer.DataProvider>
<dxm:BingSearchDataProvider BingKey="myBingKey"/>
</dxm:InformationLayer.DataProvider>
</dxm:InformationLayer>
<dxm:InformationLayer>
<dxm:InformationLayer.DataProvider>
<dxm:BingGeocodeDataProvider BingKey="myBingKey"/>
</dxm:InformationLayer.DataProvider>
</dxm:InformationLayer>
<dxm:InformationLayer>
<dxm:InformationLayer.DataProvider>
<dxm:BingRouteDataProvider BingKey="myBingKey"/>
</dxm:InformationLayer.DataProvider>
</dxm:InformationLayer>
<dxm:ImageTilesLayer Margin="0,0,0,0">
<dxm:ImageTilesLayer.DataProvider>
<dxm:BingMapDataProvider Kind="Road" BingKey="myBingKey"/>
</dxm:ImageTilesLayer.DataProvider>
</dxm:ImageTilesLayer>
</dxm:MapControl>
</Grid>
</UserControl>