我正在開發wpf應用程序。我有一個500寬度和500高度的靜態世界地圖。我的應用程序中有一個表單。在這裏從用戶輸入經緯度並提交細節。我想在靜態地圖上顯示這些經度和緯度的確切位置。所以我試圖將這些經度和緯度轉換爲像素。我正在使用橢圓在我的靜態地圖上顯示圓。我應該如何將地理座標轉換爲C#中的像素?你能否給我提供任何可以解決上述問題的代碼或鏈接?我的問題是類似的鏈接如何將地理座標轉換爲像素?
Convert long/lat to pixel x/y on a given picture
我發現這個鏈接有用。
編輯: 我已經使用了鏈接
,並寫入下面的代碼城市浦那印度
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>
我試圖使用由@Jader迪亞斯提出的C#代碼中的鏈接 –
什麼投影做你的「靜態的世界地圖「 使用?它是Google靜態地圖嗎? – Marcelo
你好@Mercelo。我的地圖使用墨卡託投影 –