如何在Tk.CustomMap中实现平铺地图叠加?

时间:2018-05-25 19:00:53

标签: c# android ios xamarin

TK.CustomMap似乎提供了覆盖"覆盖"瓷砖,但根据我的经验,它没有像我期望的那样工作。如何在不完全替换现有地图的情况下在Apple或Android地图上过度拼贴? 我们有一个Xamarin Forms项目。

给出的参数类似于:

TKTileUrlOptions("http://b.tile.openstreetmap.org/{z}/{x}/{y}.png", 256, 256, 0, 18);

TilesUrl的定义如下:

        public string TilesUrl { get;  set; }
    /// <summary>
    /// Creates a new instance of <see cref="TKTileUrlOptions"/>
    /// </summary>
    /// <param name="tileWidth">Width of a tile image</param>
    /// <param name="tileHeight">Height of a tile image</param>
    /// <param name="tilesUrl">The url for custom map tiles. 
    /// <note type="note">Url must specify 3 placeholders({0}, {1}, {2}) which are used for providing x, y and zoom.</note>
    /// <param name="minZoomLevel">The minimum zoom level supported by the tiles</param>
    /// <param name="maxZoomLevel">The maximum zoom level supported by the tiles</param>
    /// </param>

我的印象是,应该针对未指定的缩放级别显示典型的Apple或Android地图。例如,如果我指定minZoomLevel为10,则应显示本机地图,直到我放大到10级为止。

然后TKCustomMapRenderer.cs中的底层代码使用MKTileOverlay。我之前使用MKTileOverlay的经历会让我相信这是正确的实现。我需要在此代码中设置一些配置项,以显示本机地图和我作为叠加层渲染的切片。

我在回购问题上看到了这个问题,它也会有效地回答我的问题。 https://github.com/TorbenK/TK.CustomMap/issues/328

我目前的经验表明,在Apple设备上,设备的地图显示是灰色的,直到我到达我正在服务的图块。然后,瓷砖按预期显示。如果删除TK.Custom地图的叠加层,则会显示苹果地图。

在Android设备上,显示的Google地图没有任何图块叠加或替换。 (它似乎忽略了配置或层。)

任何方向或想法都会受到赞赏。

0 个答案:

没有答案