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地图没有任何图块叠加或替换。 (它似乎忽略了配置或层。)
任何方向或想法都会受到赞赏。