离线映射运行良好,OSM的所有位图来自同一台机器上的localhost服务器。一切都很好,可以看到我的所有地图,但如果wifi没有连接到互联网,地图完全停止工作显示黑屏"
我在wifi关闭时测试了服务器,似乎在浏览器中显示了正确的地图图块。
我使用指向本地节点磁贴服务器的HttpMapTileDataSource获取地图
var serverUrl = string.Format("http://127.0.0.1:6543/{0}", newTileInfo.TileUri);
var url = string.Format("{0}/{{zoomlevel}}/{{x}}/{{y}}.png", serverUrl);
HttpMapTileDataSource dataSource = new HttpMapTileDataSource(url);
MapTileSource tileSource = new MapTileSource(dataSource);
tileSource.AllowOverstretch = true;
tileSource.IsFadingEnabled = false;
_zoom = newTileInfo.Range;
MapControl1.TileSources.Add(tileSource);
看到这个问题后,我猜测离线地图是可能的,有权使用地图控件(必须在线才能打破离线映射意图)
答案 0 :(得分:1)
对于HttpMapTileDataSource
,请注意,从版本15063开始,当地的uris不再工作了。当您连接到本地服务器127.0.0.1
时,您可能需要使用CustomMapTileDataSource
。对于每个请求的磁贴,将调用事件处理程序BitmapRequested
。在此处理程序中,您可以将任何位图传递给地图。
更多详情请参阅Overlay tiled images on a map。