我正在尝试使用 Bing Maps WPF 控件从虚构的游戏世界地图的图像中渲染自定义地图图块,但我还需要根据原始世界图像在地图上绘制 X、Y 值(有点像 in-世界 GPS)。
图像是 5720x5720,我已经在工作(在不同的应用程序中)一个手动裁剪、缩放和重绘图像部分并在 PictureBox 中绘制 pixelX 和 pixelY 坐标的函数。我想使用地图控件获得相同的功能。
我使用这个 Photoshop 插件从原始自定义图像中切割瓷砖(类似于谷歌地图的 maptiler) https://github.com/bramus/photoshop-google-maps-tile-cutter/
问题是我知道要从原始图像中绘制的 X、Y 值,但我不太确定如何计算纬度/经度以在自定义平铺系统中绘制一个点。
<m:Map Name="Map">
<m:Map.Mode>
<!-- set empty map mode, i.e. remove default map layer -->
<m:MercatorMode/>
</m:Map.Mode>
<local:MyTileLayer UriFormat="file:///C:/map_tiles/{z}_{x}_{y}.jpg"/>
</m:Map>
使用自定义地图图块,地图显示效果很好,一切看起来都很好。我发现这个链接提供了一个在 TileSystem 中将 PixelXY 转换为 LatLong 的类,但它们都是针对现实世界点的。
https://msdn.microsoft.com/en-us/library/bb259689.aspx
我的自定义地图图块实际上是用于游戏的虚构地图,因此我认为在我的情况下不需要投影和地球曲率计算。
如果我只知道原始图像的 X、Y 像素坐标,我该如何在 Bing Maps WPF 控件中准确地绘制一个点?