我正在开发Windows Phone 8.1应用程序,我想在MapControl中显示Yandex Maps而不是Bing Maps。我用yandex url设置了一个新的tile数据源。它可以工作,但是显示的图块具有较小的垂直偏移。

偏移量仅是一个问题,但会影响地标-它们在yandex磁贴上显示的位置错误,但在bing磁贴上正确显示。

问题不在坐标上,因为我是从浏览器的原始yandex映射中选择它们的。

在下面的示例中,yandex提供了彩色图块,灰色形状来自bing映射。



在MapControl中设置yandex切片:

HttpMapTileDataSource dataSource = new HttpMapTileDataSource("http://vec02.maps.yandex.net/tiles?l=map&x={x}&y={y}&z={zoomlevel}");
MapTileSource tileSource = new MapTileSource(dataSource);
MyMapControl.TileSources.Add(tileSource);


我试图拦截MapControl的平铺请求并减小y坐标的值,但结果是完全错误的。

拦截请求并修改y值的结果



MSDN: MapControl tile overlay

最佳答案

这是因为Yandex Maps和Bing Maps的地图投影略有不同。我不是投影专家,但是,您可以看到为MercatorProjection实现的MercatorProjectionYandex(针对Bing Map实现)和Great Maps for Windows Forms & Presentation(针对Yandex Maps实现)类之间的差异。

关于c# - MapControl显示具有偏移的Yandex Maps切片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27653477/

10-10 13:40