我正在尝试使用xamGeographicMap
(在Infragistics WPF控件中)从内部GeoServer上运行的WMS服务中检索其背景图块。此服务要求您为其提供纬度/长度边界框,而不是平铺x / y位置。但是,当我在我的派生GetTileLayers
中覆盖MapTileSource
时,我只会向tilePositionX
,tilePositionY
和tileLevel
提供。如何将其转换为lat / long?
当我尝试将Bing Maps WPF控件连接到同一服务时,我遇到了类似的问题,但它已由此处提供的TileSystem
类解决:http://msdn.microsoft.com/en-us/library/bb259689.aspx。我尝试使用与xamGeoGraphicMap
相同的转化类无效。
答案 0 :(得分:2)
事实证明,您实际上可以使用MSDN上提供的TileSystem
类来实现此目的。我的错误是假设tileLevel
等于zoom
。在查看了一些示例Infragistics示例代码之后,我遇到了以下几行:
var zoom = tileLevel - 8;
在调用TileSystem.PixelXYToLatLong
时使用此转换,我能够获得所需的值。如果您的WMS服务需要米,请确保将边界从度数转换为米。
答案 1 :(得分:1)
你应该为此编写自定义方法,因为没有任何内置方法。
在Infragsaitics论坛中,讨论了类似的问题。你可以看到附在那里的样本:
http://www.infragistics.com/community/forums/p/84442/423636.aspx#423636