我正在开发 wpf 应用程序。我有一张 500 宽和 500 高的静态世界地图。我的申请中有一张表格。在此来自用户输入纬度和经度并提交详细信息。我想在我的静态地图上显示这些纬度和经度的确切位置。所以我试图将这些纬度和经度转换为像素。我正在使用椭圆在我的静态地图上显示圆圈。我应该如何将地理坐标转换为 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。所以上面的代码没有显示我在地图上的浦那位置。我的xml代码如下
<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>