gpt4 book ai didi

c# - MapWinGis 的离线磁贴服务

转载 作者:行者123 更新时间:2023-11-30 12:43:16 25 4
gpt4 key购买 nike

MapWinGIS具有 PrefetchToFolder 的功能它可以将切片缓存到指定的文件系统文件夹以供进一步离线使用。此功能完美运行,但如何加载该图 block 以在限制区域创建离线 map ?这是使用 PrefetchToFolder 的示例:

        double y = 39;    // latitude, deg.
double x = 140; // longitude, deg.
double span = 5; // deg.
Extents ext = new Extents();
ext.SetBounds(x - span, y - span, 0.0, x + span, y + span, 0.0);
axMap1.Tiles.PrefetchToFolder(ext, 8, 0, @"c:\map1", ".png", StopFunction());

我的编程语言是 C#。

这是一些可以获取但无法加载的代码:

    private void btnLoad_Click(object sender, EventArgs e)
{
TileProviders providers = axMap1.Tiles.Providers; ;
int providerId = (int)tkTileProvider.ProviderCustom + 1;
providers.Add(providerId, "MyProvider", @"file:///C|/map1/{zoom}/{x}/{y}.png", tkTileProjection.SphericalMercator, 1, 18);

axMap1.Projection = tkMapProjection.PROJECTION_GOOGLE_MERCATOR;
axMap1.TileProvider = tkTileProvider.ProviderCustom;
axMap1.Tiles.ProviderId = providerId;

axMap1.Latitude = 39;
axMap1.Longitude = 140;
axMap1.CurrentZoom = 8;

}

private void btnSave_Click(object sender, EventArgs e)
{
double y = 39; // latitude, deg.
double x = 140; // longitude, deg.
double span = 5; // deg.
Extents ext = new Extents();
ext.SetBounds(x - span, y - span, 0.0, x + span, y + span, 0.0);
axMap1.Tiles.PrefetchToFolder(ext,1 , 0, @"c:\map1", ".png", StopFunction());
}

最佳答案

你应该为此使用服务器。例如: map 服务器

对于窗口:

1) 下载 ms4w : http://www.maptools.org/ms4w/index.phtml?page=downloads.html

2) 解压根目录(c:/ms4w)

3) 通过运行/ms4w/apache-install.bat(在命令行或双击它)来启动 MS4W Apache Web 服务器。此文件将 Apache 安装为 Windows 服务(称为“Apache Web 服务器”),以便它在您的计算机重新启动时启动。执行时,应弹出一个 DOS 窗口,并显示以下消息:

Installing the Apache MS4W Web Server service
The Apache MS4W Web Server service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service
can be started.
The Apache MS4W Web Server service is starting.
The Apache MS4W Web Server service was started successfully.

4)复制瓦片文件/ms4w/Apache/htdocs/maps

5) 然后你应该在 http://localhost/maps 中看到这个文件

tiles 文件生成:

对于这个过程,我使用 mapertive。该程序免费并生成 openstreet map 。这是链接:http://maperitive.net/

代码示例:

    TileProviders providers = axMap1.Tiles.Providers; ;
int providerId = (int)tkTileProvider.ProviderCustom + 1;
providers.Add(providerId, "MyProvider", "http:/localhost/maps/{zoom}/{x}/{y}.png", tkTileProjection.SphericalMercator, 1, 18);

axMap1.Tiles.ProviderId = providerId;
axMap1.CurrentZoom = 8;

结果 =

enter image description here

关于c# - MapWinGis 的离线磁贴服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31725076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com