wpf アプリケーションを開発しています。幅 500、高さ 500 の静的な世界地図が 1 つあります。申請書には 1 つのフォームがあります。これで、ユーザーは緯度と経度を入力し、詳細を送信します。これらの緯度と経度の正確な位置を静的マップに表示したいと考えています。したがって、これらの緯度と経度をピクセルに変換しようとしています。楕円を使用して静的マップに円を表示しています。C# で地理座標をピクセルに変換するにはどうすればよいですか? 上記の問題を解決できるコードまたはリンクを教えてください。私の質問はリンクに似ています
このリンクは便利だと思いました。
編集:リンクを使用しました
そして、次のコードを書きました
GoogleMapsAPIProjection googleApiProjObj = new GoogleMapsAPIProjection(0);
float x = 18.29F;
float y = 73.57F;
System.Drawing.PointF p1 = new System.Drawing.PointF(x,y);
System.Drawing.PointF p2 =googleApiProjObj.FromCoordinatesToPixel(p1);
//CircleEllipse.Margin = new Thickness(longitudePixels,latitudePixels, 0, 0);
CircleEllipse.Margin = new Thickness(p2.X, p2.Y, 0, 0);
CircleEllipse.Visibility = Visibility.Visible;
18.29 と 73.57 は、インドのプネー市の緯度と対数です。上記のコードで、p2.x は 141 を返し、p2.y は 49 を返します。したがって、上記のコードはプネーの場所を地図上に表示しません。私のxamlコードは次のとおりです
<ScrollViewer HorizontalScrollBarVisibility="Auto" Grid.Row="4" Width="500" Height="500" Background="Gray">
<Grid>
<Image Margin="0,0,0,0" x:Name="MapImage" Source="Images\World-Blank-Map.png" Stretch="Fill" Width="500" Height="500" ></Image>
<Ellipse Canvas.Top="50"
Canvas.Left="50"
Fill="Red"
Height="5"
Width="5"
Visibility="Collapsed"
StrokeThickness="4"
x:Name="CircleEllipse"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="0,0,0,0" />
</Grid>
</ScrollViewer>