主题中的问题:“WebMaptiler” https://knowledge.亚搏在线safe.com/questions/topics/single/178.html网站 “WebMaptiler”主题的最新问题 PNG编写器打印额外的PNG文件 https://knowledge.亚搏在线safe.com/questions/79018/png-writer-prints-out-extra-png-files.html

你好!

我正在尝试使用网络地图绘制程序.我的问题是,当将数据写入PNG格式时,作者在一些图块上添加了额外的“1”。

扇出是@value(_zoom_level)/@value(_tile_column),当我在编写器之前检查对象时,没有对象具有任何“扇出”的“_1”。但当作者将数据写入我的文件夹时,它将一些png:s分为两部分,这样地:

1218.PNG

1218.1.PNG

1219.PNG

1220.巴布亚新几内亚

1220英尺1.png

1221.PNG

有人知道为什么作者会打印以“1”结尾的png:s吗?

作家 泰勒 PNG 网络地图绘制程序 FRI,2018年9月21日13:40:42格林尼治标准时间 1991年曼德森
如何将矢量数据转换为mbtiles金字塔? https://knowledge.亚搏在线safe.com/questions/75597/how-to-convert-vector-data-into-an-mbtiles-pyramid.html

你好,

我们最近才开始采用mbtiles格式进行离线地图查看。

我期望的是TMS设置,每层瓷砖都达到最佳分辨率,即没有不适当的像素化。

我做了一些测试,但是,似乎mbtiler编写器只接受光栅图像,即已经固定的分辨率。这将导致像素化最低(或最高?)水平。

如何从矢量地图数据创建mbtiles数据集,所有级别都有完整的分辨率?

WebMaptiler还需要光栅输入,所以这不是一个固定的选择。

任何见解都是有价值的。使用2018.1。

干杯

光栅 网络地图绘制程序 多面体 TMS 清华大学,2018年8月2日13:42:13格林尼治标准时间 利法林2016
PNG优化 https://knowledge.亚搏在线safe.com/questions/71536/png-optimization.html网站

我正在通过WebMaptiler创建一个sqlite tilecache,用PNG斑点,并希望使用PNG优化。这似乎在《盗猎者》一书中可以找到,但我不是在使用PNGRaster编剧,我正在使用sqlite编写器。所以,是否有任何方法可以提取这段代码,或者是否有其他转换器可以用来执行PNG优化的相同工作?

PNG 网络地图绘制程序 清华大学,2018年5月31日15:55:15格林尼治标准时间 厄尔加雅斯汀
使用WebMaptiler从平铺的源光栅创建TMS图块 https://knowledge.亚搏在线safe.com/questions/71167/create-tms-tiles-from-tiled-source-rasters-using-w.html

我有一个目录结构,其中包含10级TMS(XYZ)格式的源光栅图块(512x512像素PNG文件)。这些是由第三方提供给我的。

从这些我想生成9级和8级,以便额外的层可以显示在传单应用程序。我以为FME和WebMaptiler会是答案,但我一直在努力工作。

到目前为止,我在Workbench中有以下内容:

  1. 从现有目录结构中读取所有源文件的pngraster读卡器。
  2. 从这里使用python函数计算源代码块的边界坐标的pythoncaller-https://wiki.openstreetmap.org/wiki/slipy_map_tilenames.
  3. 使用上述坐标对光栅进行地理参考的光栅参照器。
  4. 生成单个光栅的光栅探测器。
  5. WebMapTiler(设置为GlobalCrs84比例,最小缩放=8,最大缩放=10)以在级别10生成光栅图块,9和8。
  6. 名称设置为y(row)属性,扇出表达式为@value(out-tile-level)\@value(out-tile-x)的pngraster编写器,将目录结构设置为level\x

几乎可以工作了,但我有以下问题:

  • 性能非常差,生成大约1800个瓷砖。
  • X的目录似乎不正确(例如10级的和来源不一样)

是否有人对FME有任何想法或可能有不同的方法来实现这一点?

当做

约翰

网络地图绘制程序 XYZ TMS FRI,2018年5月25日17:08:50格林尼治标准时间 约翰斯吉斯布斯丁
Maptiler WMTS阅读器 https://knowledge.亚搏在线safe.com/idea/49606/maptiler-wmts-reader.html网站

能够使用WMTS读卡器从http://www.maptiler.com/读取。

考虑使用此服务的WMTS阅读器。

网络地图绘制程序 清华大学,2017年8月3日19:29:52格林尼治标准时间 装卸安全柜亚搏在线
在发出时,发送计数是否超过FeatureWriter写入的文件总数? https://knowledge.亚搏在线safe.com/questions/46645/counting-features-written-by-featurewriter-as-the.html

我目前有一个自定义的转换器,它从一个WebMaptiler获取一个参数maxtileCount(瓦片的值),它计算功能的数量,并每隔10条消息发送一条HTTP消息来显示进度。

一切正常。不过,现在我有问题了。PNGwriter不再是一个PNGraster作家,但是已经变成了一个专长作家。这需要很多时间,所以我想把通知移动到管道的后面,在“PNGWRITER(FeatureWriter)”之后。我的问题是,我不知道该如何再计算FeatureWriter在发出文件时写入的文件的数量,我也没有权限访问num_tiles,它是来自WebMaptiler的tiles总数。

简单来说,我想用总数/总数因为这些文件是由FeatureWriter编写的,你知道该由谁来做吗?

第二个通知程序失败。所以我禁用了它。

特写员 PNG 网络地图绘制程序 周一,2017年6月26日15:59:11格林尼治标准时间 伊格特弗伦德
从ECW到MBTIES https://knowledge.亚搏在线safe.com/questions/37890/from-ecw-to-mbtiles.html(https://knowledge.safe.com/questions/37890/from-ecw-to-mbtiles.html)

你好。

我必须将光栅(ECW格式)存储在mbtiles(编写器是sqlite)中。

光栅如下所示:

栅格

我的第一次FME尝试是:光栅.fmw

mbtiles格式需要数据库中的两个表:tiles和metada。FME构建第一个,然后用SQLite浏览器创建第二个。

将数据库从.sqlite重命名为.mbtiles后,我将文件添加到qgis以查看结果:结果1.png

变焦越大,拼图就越疯狂。

我对FME几乎没有经验,我不知道我能做些什么来解决这个问题。

有人知道这个过程有什么问题吗?还是有更好的方法从光栅获取MBTIES?

谢谢你的帮助!

光栅 电子战 网络地图绘制程序 多面体 激光测距机 结婚,2016年12月21日16:12:11格林尼治标准时间 奥斯卡
CAD到Web地图平铺 https://knowledge.亚搏在线safe.com/questions/30920/cad-to-web-map-tiles.html网站

我是一个网页开发人员,我需要转换地图,在常规的基础上,从CAD文件到谷歌地图的网络地图瓷砖。关于这个主题的资源很少。我从公司找到了一个YouTube教程,但解释得很糟糕。我尝试了同样的方法,但未能转换文件。以下是我正在处理的文件,如果你能看看它们,那就太好了:https://drive.google.com/folderview?id=0bwmirpbclfbry1lonvnusufzq2c

请放心,因为我对CAD/FME/土木工程知之甚少。

感谢您花时间阅读我的问题。

当做

萨米

网络地图绘制程序 结婚,2016年7月13日14:21:44格林尼治标准时间 萨米
FME桌面是否可以将光栅平铺到地图服务器的PNG平铺中? https://knowledge.亚搏在线safe.com/questions/27753/can-fme-desktop-tilise-graster-into-png-tiles-for-a.html

我希望将航空图像平铺到大约10个缩放级别,以进入地图服务器。

我现在的门廊,在FME之外正在挣扎。

它是使用python的gdal2文件,但它不是多线程,只使用一个核心。因此,运行8天,只产生一级变焦从10。

我怀疑FME可以做到,但我不确定如何做到。

光栅 地鼠 网络地图绘制程序 清华大学,2016年4月21日10:13:15格林尼治标准时间 塞布金斯利
在编写光栅图块时,数据集扇出会对性能产生负面影响 https://knowledge.亚搏在线safe.com/articles/27141/dataset-fanout-negative-impacts-performance-when.html

症状

在打开“数据集扇出”的情况下编写Web地图或光栅图块集时,当写入和RAM使用SkyRockets时,性能会显著降低。

原因

数据集扇出重新排列瓷砖的顺序,而且还要求所有的瓷砖在开始书写之前都要积累起来,这会导致性能变慢。

分辨率

此时,建议在编写光栅图块时不要使用数据集扇出。

此问题将在解决pr 41202时解决。

光栅 网状物 性能 网络地图绘制程序 光栅扫描仪 星期二,2016年4月5日15:21:46格林尼治标准时间 米塔特保险柜亚搏在线
WebMaptiler投影 https://knowledge.亚搏在线safe.com/idea/20031/webmaptiler-projects.html网站 允许在WebMaptiler中使用更多投影系统。有些人在本地投影系统中需要/想要他们的Web服务。英国国民警卫队将非常有用。同时也给它更多的选择Pyrmid产品。 光栅 坐标系 网状物 网络地图绘制程序 FRI,2015年11月13日11:48:29格林尼治标准时间 马尔科 写入TMS文件夹和文件 https://knowledge.亚搏在线safe.com/questions/19848/writing-tms-folders-and-files.html(https://knowledge.safe.com/questions/19848/writing-tms-folders-and-file 你好,

我们目前正在评估FME桌面,希望我们用FME替换Maptiler,并在其中编写Tiles。 Maptiler使用的文件夹和命名结构。

我们正试图使用WebMaptiler Transformer和光栅PNG编写器来编写与 TMS这是我们的瓷砖服务器使用的。文件夹结构的格式必须为../zoomlevel/x/y,其中y是实际的文件名。我已经能够使用数据集fanout将文件放入与缩放级别匹配的文件夹中,但无法确定如何将第二个fanout添加到x文件夹中。也,文件名的设置方式可能与我们需要的不同。

以前有人做过吗?

谢谢,
作记号
光栅 网络地图绘制程序 周一,2015年11月9日17:36:14格林尼治标准时间 马尔卡西
在SQL Server中创建Web映射图块缓存 https://knowledge.亚搏在线safe.com/articles/612/creating-a-web-map-tile-cache-in-sql-server.html

下载

网络地图拼接

下面是基本的maketiles工作区。第一步是强制图像到rgba,这将使由reprojector创建的任何节点数据区域都是透明的。webmaptiler要求源数据在球面墨卡托坐标系中,所以图像会被发送到转发器,然后是WebMaptiler。


最大缩放级别应设置为与源图像分辨率相对应的值,使用可在图图片系统第页。最小缩放级别将取决于源图像的大小,但是一个很好的选择值的方法是将图像的宽度除以100,然后查找与该分辨率相对应的缩放级别。


SQL Server将图像存储在BLOB列中,而不是作为功能几何体,因此,我们接下来必须使用rasterextractor将光栅提取到属性中。光栅格式应能支持rgba光栅,所以巴布亚新几内亚是个不错的选择。

用户添加的图像

多个源图像

如果有多个源图像需要平铺,您可以在一个工作区中运行整个过程,方法是在重新编写器之前添加一个Rastermosaicker,并将所有源文件添加到源数据集中。然而,重新投影和平铺非常大的图像可能会导致内存限制。


另一种解决方案是单独运行maketiles中的所有源。这将导致在图像边界上使用重复的四键创建平铺,但这些可以用另一个FME过程来清除。


清理过程由两个工作区组成。第一个工作区,清除重复项,使用SQL查询提取表中有多个图块的所有四键。
从TileCache Group中选择QuadKey,按Count(*)大于1的QuadKey



查询的每个结果都有一个由QuadKey构造的where子句,然后在WorkspaceRunner转换器中使用它来运行第二个工作区。

用户添加的图像

第二个工作区,带删除功能的马赛克复制,使用第一个工作区提供的WHERE子句提取特定四键的所有图块。一份瓷砖拼接在一起形成一个新的瓷砖,将其FME_db_操作设置为插入。瓷砖的第二个副本将其FME_db_操作设置为删除。将这些特性写回数据库将导致添加新的镶嵌图像,同时删除原始的部分磁贴。

用户添加的图像

清洁过程的结果是无缝瓷砖组,但因为瓷砖是由单独的四键清洁的,内存使用率很低。

储存要求

用户响应:
@在缓存方面做得很好。我想知道需要多少存储空间?

每一个缩放级别占其下一级的0.25倍空间,因此,如果您的最低缩放级别对应于源图像的分辨率,总空间为:
组织规模+0.25*组织规模+0.0625*组织规模+0.015625*组织规模…等。


我的微积分生锈了,但我认为这将限制全套缩放级别的1.5*组织大小。

然而,Rasterextractor中使用的光栅类型也具有效果。我通常使用rgba png格式来确保良好的透明度保留,比未压缩的RGB大33%,可能是jpeg的10倍,或者是ECW或MRSID的100倍大。

光栅 网状物 SQL服务器 网络地图绘制程序 清华大学,2015年10月8日19:14:00格林尼治标准时间 赖安娜保险箱亚搏在线
Web映射平台的光栅化 https://knowledge.亚搏在线safe.com/articles/606/rasterization-for-web-mapping-platforms.html网站


下载

世界轮廓.zip
ffs2邮政地理信息系统.fmw
轮廓-光栅化postgis.fmw
光栅或传感器.fmw



介绍

运行所附工作区需要最新的(发布后)FME 2009或FME 2010!

这个场景展示了如何从矢量数据为Web映射平台准备光栅图块。场景使用微软必应地图瓦片系统,然而,结果可以用于谷歌地图和其他地图平台。

Bing地图(又称虚拟地球)是一个强大而灵活的工具,可以通过互联网提供数据服务。FME可以在为必应地图准备数据时发挥重要作用。我已经发布了一个场景,解释了如何将光栅数据转换为Bing地图的光栅图层。

我发现Bing地图瓷砖非常方便的地方是,我们总是知道瓷砖和像素的地面单位大小,它在整个地球上每一个变焦级别都是恒定的。这是由球面墨卡托投影定义的。它允许以一种简单的方式设置一些参数。

现在想象一下,我们想获取一些矢量数据,并将其显示在Bing地图或谷歌地图中(请注意,两个链接指向同一个图块集)。有几种方法可以做到这一点;在本文中,我将只讨论一种方法——光栅化和制作Bing地图瓷砖。

这篇文章意味着你知道一些关于Bing地图工作原理的基础知识,什么是瓦片,四键,和缩放级别。

作为源地图,我使用了来自Vmap级别0。该数据集覆盖全球,细节级别为1:1000000地图。


轮廓给了我们一个有趣的挑战——如果我们在每个缩放级别上显示所有线条,在较低的缩放级别,轮廓将完全覆盖山区的背景地图,因此,我们必须发明一种算法,可以为每个缩放级别选择特定高度的轮廓。例如,在任何缩放级别上都应能看到1000米的轮廓。而只有当我们放大到接近7级时,才有100米的轮廓。

另一方面,它可以非常有用地看到所有的轮廓,以获得地球的救济感。此外,保持所有轮廓对于FME桌面和FME服务器来说是一个很好的压力测试,所以我发布了这两个变体。


我们还希望在每个缩放级别上获得最高质量的光栅图块。这意味着,当我们进入下一个缩放级别时,我们无法对为一个缩放级别创建的分片重新取样–光栅化应分别对每个级别进行。

请看下图。我们可以看到当webmaptiler从源光栅(上面的行)制作图块时,光栅图块是如何淡出的。当我们制作矢量图块并分别对它们进行栅格化时,我们在所有缩放级别上都有一致的质量,另外,我们可以控制每个级别的内容(下一行):


虚拟地球有19个缩放级别。每层新瓷砖的数量是前一层的四倍。如果我们想缩小到14-15级,我们应该得到数以千万计的瓷砖,这就是为什么我还要讨论我们必须克服的性能挑战。该过程展示了如何在空间上启用数据库和FME服务器的情况下使用FME的全部功能。

源数据

vpf格式的源数据可以从国家地理空间情报局(NGA)网站.为了您的方便,我下载数据并将其转换为FFS格式。完整的档案可以从附加的world\u outlines.zip下载。未压缩的,完整的数据集占用超过600兆字节。数据包含1000英尺间隔的轮廓(在某些地方为500英尺,其他一些轮廓线具有不同的间隔)。

为了我们的目的存储和检索这些数据量的最佳方法是在一个支持空间的数据库中。在我的例子中,我用过PostGIS数据库(将ffs转换为postgis的工作区是附件ffs2postgis.fmw)。

对于那些,害怕数据库,我知道我花了一个多小时才下载,安装,能够在上面运行PostgreSQL和Postgis,尽管我根本不是数据库专家。

准备矢量数据

“智能”数据选择

在为光栅化准备数据时,我加了一个过滤器,根据轮廓间隔选择数据,也就是说,缩放级别14有所有的轮廓,缩放级别13–只能被10整除,12级的轮廓可以被20整除,等等,我们可以用测试仪来测试,但有时,表达评估师的一个简单表达可以做到完美:

@值(_Elevation)%1000==0?8:(@value(_elevation)%500==0?9:(@value(_elevation)%200==0?10:(@value(_elevation)%100==0?11:(@value(_elevation)%20==0?12:(@value(\u elevation)%10?13∶14


通过这种方式,我们计算出应该看到轮廓的最高(最小数目)缩放级别。

之后,一个小循环将允许我们为每个缩放级别制作多组轮廓。


所以第一组只包含千分之一的轮廓,第二个-1000和500,第三个,第1000名,第500和第200,等等。

着色数据

渐变渐变是一个很好的选择范围广泛的值,如轮廓高程。使用pythoncaller设置颜色是分配fme_颜色属性的快速简便的方法。下面是附加工作区中使用的python代码示例:

import pyfmelogger=pyfm.fmelogfile()类colorsetter(object):def input(self,功能):self.elev=feature.getInttribute('elevation_ft'),如果self.elev<2000:if self.elev<1000:self.color='0',str(0.24+0.0004*self.elev)+,0'否则:self.color='0.5',str(0.24+0.0004*self.elev)+,0.5'elif self.elev<=6000:if self.elev<=3500:self.color=str(0.0002*(7000-self.elev))+','+str(0.0002*(7000-self.elev))+',0'其他:self.color='0.7',+str(0.0002*(7000-self.elev))+',0'elif self.elev<=15000:如果self.elev<10000:self.color='1',+str(0.0001*(self.elev/2))+',0'其他:self.color='1,'+str(0.0001*(15000 self.elev))+,0.5'elif self.elev<25000:self.color=str(0.0001*(25000-self.elev))+,0,+str(0.0001*(self.elev/3))否则:self.color='0.5,0.5,1'feature.setattribute('fme\u color',self.color)feature.setattribute('fme_fill_color',self.color)self.pyoutput(功能)




光栅化

试错法

通常,FME使用WebMaptiler Transformer从输入光栅生成Bing映射图块。这种方法可能对向量数据集不太适用。将地图光栅化到缩放级别10将产生一幅每边262144像素的图像,这些刺耳的声音有点难以控制。我们可以将数据集的较小部分光栅化,然后在较小的光栅上使用WebMaptiler,但这将涉及两个光栅操作(光栅化本身和光栅平铺)。此外,如果我们选择一个任意的网格,我们可能会以不完整的瓷砖结束,还要注意把它们拼接在一起。经过一些测试,我放弃了这条路线,决定尝试直接剪切和光栅化到必应地图瓷砖。也就是说,ImageRasterizerTransformer应获取制作单独瓷砖所需的准确数据部分。所以现在我们只有一个光栅变压器。这一变化的另一个积极的副作用是,我们现在不会生产没有任何数据的瓷砖。

我们怎样才能做出这样的部分呢?答案很简单剪刀变压器。我们可以制作矢量瓷砖多边形作为裁剪器,数据集提供剪辑。这就是理论。如果我们把我们的世界从1级放大到10级,我们必须制造近150万台快船。那太多了。尽管改进了很多,当裁剪器的数量超过20000-60000(取决于裁剪数据的数量)时,我们仍然存在一些性能问题。

我试着用交叉线代替剪子,这让我可以比剪子再放大两级,然而,它需要一些额外的工作来计算四键,尽管如此,它不能用于更深层的铺砖。

在我对最终工作流的近似中,下一个合乎逻辑的步骤是制定一个由两个(或更多)步骤组成的过程。亚搏在线第一步,我将把原始数据集平铺成更小的数据集,其范围与某个缩放级别的平铺范围相匹配(例如,7或8,如在我的测试中)。然后,对每个较小的数据集进行相同的平铺和最终光栅化,将其缩小到14-15级。

事实上,不应该有太多的需要在一个过程中,会采取一些数据,并瓦片它的整个缩放级别范围从1级(世界)到19级(摩尔山)。世界地图和街道地图的内容各不相同,即使有些元素是相同的(海岸线,例如,它们通常用完全不同的几何图形来表示——广义的或详细的。

为了管理这样的工作流程,亚搏在线我必须设置以下程序。在第一阶段,原始数据集被分割成更小的部分,并以某种方便的格式存储(最好是使用空间索引-一个FFS或一些空间数据库)。第二阶段有两个工作区,一个用另一个执行工作空间器或ServerJobSubmitter Transformer。

第一个工作区决定应获取数据的哪个部分(文件或数据库表),第二个工作区知道如何平铺和光栅化进入它的内容。

仍然,生成和保留多个较小的数据集而不是一个较大的数据集的必要性不是一个理想的解决方案——很难管理数据存储和分发,一些零件更容易松动,等。这就是为什么空间数据库在整个过程中发挥着更重要的作用。

最终工作流亚搏在线

空间数据库,如Oracle,SQL服务器,MySQL或PostGIS在快速读取空间数据子集方面非常有效。如果我们需要从传统的向量格式(如mapinfo或dgn)中提取一些数据,我们必须读取整个数据集,添加一个定义感兴趣区域边界的多边形,然后,使用裁剪器或其中一个覆盖器(例如AreaOnAreaOverlayer)获取数据。对于数据库读卡器,获得相同的结果只是设置读卡器参数的问题,可以出版,因此,从外部工作区设置。




此处发布的最终工作流亚搏在线如下所示。

我们采用了一个代表我们所在区域的功能——它可以是一个国家区域或简单的边界框。我们要求参数-最小和最大缩放级别(从中可以看到缩放级别数据)。我们还必须指定所谓的“平铺级别”(我以前称之为“读取”,但就其用途而言,这不是一个很好的词。

使用光栅化器,我们制作一个小的光栅(1*1或10*10像素,以避免任何舍入问题)。并通过WebMaptiler传递此光栅。我们有瓷砖,知道他们的四键名称。

然后用边界提取程序,我们得到最小和最大的x和y,它们和Quadkey一起作为第二个工作区的参数。

在下面的示例中,我们有28块瓷砖,这意味着我们将执行从缩放级别5到缩放级别7(即平铺级别)的28个工作区。顺便说一句,我们有人在马达加斯加用FME把TIFF转换成BMP,也许在下次会议上我会告诉你我们是怎么知道的,我们如何收集和使用有关用户的统计数据。


现在,我们在这28个工作区中做什么?我们将从外部工作区发送的参数(平铺区)应用于数据库读取器。使用“clip”选项,我们只获取我们提交的QuadKey中的数据。

在那之后,我们做我们的常规工作——如果需要的话,染色和比例选择。

然后,我们要么简单地按读取到图块的内容分组,然后将其保存为PNG文件,或者我们做额外的瓷砖。


为什么有些瓷砖会马上写出来,有些又被铺了瓷砖?这取决于瓷砖的水平。再一次,说到上面的图像,用5级和6级变焦的图像块读取的数据立刻被光栅化和写入。

使用缩放级别7的分片读取的数据也直接光栅化,但在此之前,是瓷砖,以制作缩放级别8和9的平铺。

这一切都给了我们很大的灵活性。现在我们可以控制将执行多少工作区,以及每个工作区将生成多少个图块。当我们增加第一个工作区中的平铺数量(通过增加平铺级别编号)时,我们增加了将要执行的工作区的数量,这意味着每个工作区的工作量都会减少。或者,如果我们提交较少的瓷砖,这意味着更少的工作空间,每个工作区有更多的工作(更多的图块)。

在FME桌面上的结果-每个工作区多个工作区还是多个图块?

下图显示平铺到(或向下)缩放级别8。当我试图用一个工作区来平铺所有东西时,36小时后我不得不放弃——我没有看到任何工作在进行。或者我的故障模式与影响分析停止了,或者我没有足够的耐心——其余的数字告诉我们,进一步的等待是没有意义的。


当工作区不需要做那么多的剪报时,情况开始好转。每个工作区有4000块瓷砖的效果似乎比16000块要好得多,每个工作区的间隔在64到1000块之间似乎是最佳的。当我们有太多的工作空间时,通过所有其他变压器传递数据的必要性超过了快速剪切的任何优点。
每个WKSP的工作区瓷砖铺设水平
1 1 1
2 16 16
3 64 64
4 320 320
5 1344 1344
6 5440 16个
7 21824 4个

FME服务器

如果我们真的需要很多瓷砖,这个过程可能会很慢。根据不同的条件,我的机器每秒能生产6到10块瓷砖,这意味着每天大约50万到85万块瓷砖。然而,大项目,比如说加拿大全境,如果将细节降低到缩放级别14-15,则需要数百万个瓷砖。

上面解释亚搏在线的工作流程非常适合于FME服务器技术。

事实上,所有需要做的(假设FME服务器已经启动并运行)就是用ServerJobSubmitter替换WorkbencRunner。该变压器将采用相同的参数,一旦发生变化,我们已经准备好用FME服务器制作磁贴。

更多的机器还是更多的引擎?

最初,我们尝试了一台单引擎的FME服务器四核机器,结果与我们在带FME桌面的机器上得到的结果非常接近。这是意料之中的。然后我们想,如果我们在那台四核机器上安装四个引擎,我们会看到性能的真正改进。然而,许多引擎的性能比只有一个引擎的性能差(第1列和第5列):



我们接下来的两个测试比较了四台机器的性能,分别是单引擎和双引擎。正如你所看到的,结果非常接近——都在2.5小时左右(第2列和第4列)。

8台单引擎机器取得了最快的结果。也许,两台发动机的机器也一样,但是,当你为一台发动机买单时,要得到相同的结果,可能没有多大的意义。

为什么会这样?我们检查了任务管理器的CPU消耗情况,在这个过程的大部分时间里,它是相当低的。在与技术经验更丰富的安全人员进行了一些磋商之后,亚搏在线我们一致认为瓶颈是I/O——我们只是不能在给定的时间段内写入更多的文件,所以多个引擎会等他们有机会写东西,但结果将是相同或更糟的——仅仅是因为我们制造了这样的人群。

FME服务器平铺性能

然后我们做了一些简单的性能测试,以了解我们可以多快地生成瓷砖。我们将vmap轮廓平铺到缩放级别8。为此,我们用1运行了平铺过程,2,4,8台机器,如你所见,我们把休息时间从两小时缩短到20分钟以下。



然后我们尝试了如果我们达到10级和11级的速度,表格显示了这些数字。25万块瓷砖可以在大约2小时内完成,在6.4小时内完成了100万块瓷砖。在一台机器上,这需要将近两天的时间。
水平平铺分钟(小时)
8 24500 18(0.3)
10 245000 105(1.75)
11 1000000 384(6.4)

现在很容易想象,将一个具有多层的大区域平铺到缩放级别14或15可能需要很长的时间或大量的计算资源。

无限的可扩展性?

所以,如果我们有无限数量的计算机,我们能以多快的速度达到我们的目标?

此图不处理总时间;它显示每个工作区的平均时间和最大时间。



图中所示的过程生成约3500块瓷砖,一个工作区大约需要半小时。当工作空间数量增加时,平均值和最大值都在下降。有82个工作区,也就是说,有82台发动机,这个过程可以在半分钟内完成(如果没有其他瓶颈)。

FME服务器现在可以工作,上述测试也由我们的同事在韦戈.

结论

用FME制作瓷砖真的很容易。只要瓦片的数量不超过数十万或几百万,就只需要使用FME桌面就可以开始制作它们。

平铺过程的结果并不局限于单个映射平台Bing映射。它可以与谷歌地球和其他网络地图平台一起使用。

如何将数据处理拆分为多个工作区的一般思想并不局限于所描述的过程,因此,更有价值。

FME服务器允许更快的数据生成,因此,如果您的卷很大或需要频繁更新,这就是我们要走的路。

即使FME服务器不够,FME现在生活在云中,它可以扩展到非常宽的范围。

数据,工作空间,链接

world_outlines.zip-FFS格式的源数据

ffs2postgis.fmw-将ffs转换为postgis的工作区

rasterizerrunnerpostgis.fmw-执行助手工作区的父工作区

Contour_RasterizationPostgis.fmw-帮助工作区生成瓷砖

结果必应地图

结果谷歌地图

上述过程相当复杂,随时联系技术支持有任何相关问题或发现任何不正常工作。

光栅 网状物 网络地图绘制程序 图像光栅化器 清华大学,2015年10月8日19:13:59格林尼治标准时间 赖安娜保险箱亚搏在线
我应该使用哪种网络地图平铺方案? https://knowledge.亚搏在线safe.com/articles/180/which-web-map-tiling-scheme-should-i-use.html

问题

WebMaptiler提供了几种平铺方案。我想用哪个?

回答

要使用的最佳方案取决于所需的输出图块类型。256x256瓷砖可以吗?还是需要定制尺寸?你想要网络墨卡托还是地理投影?下面每个瓷砖方案的插图可以帮助您确定哪一个最有用。

谷歌地图兼容

这是最常用的方案,因为它复制了谷歌和必应地图中使用的平铺方案。有关瓷砖方案的详细说明,请参见 MSDN.

瓷砖的源光栅必须位于WebMercator投影(EPSG:3857)中。这是一个使用球形地球的简化墨卡托,从纬度85延伸,经度-180至纬度-85,经度180,单位为米。

平铺大小固定为256 x 256像素。级别0表示单个图块中的整个世界。平铺从左上角开始,行向下编号,列向右编号。

某些图块映射服务器可能需要不同的图块编号。使用ExpressionEvaluator变压器很容易做到这一点。例如,要转换为从中间开始向右编号的瓷砖编号,可以使用以下表达式:

column_1=_tile_column-(2**(_zoom_level-1))row_1=(2**(_zoom_level-1)-1)-_tile_row

GoogleMapsCompatible缩放级别0平铺(列,行):
用户添加的图像

GoogleMapsCompatible缩放级别1平铺:
用户添加的图像

GoogleMapsCompatible缩放级别3平铺:
用户添加的图像


GoGeReCr84Quad

这类似于上面描述的GoogleMapsCompatible,但使用地理纬度,经度坐标,而不是Web墨卡托投影。webmaptiler的源图像必须在wgs 84 lat/long坐标系中(epsg:4326)。范围来自纬度90,经度-180到纬度-90,经度180,单位为度。

平铺大小固定为256 x 256像素。平铺从左上角开始,行向下编号,列向右编号。缩放级别0表示单个图块中的整个世界,但由于数据范围是矩形而不是正方形,第一行和最后64行的值为空。缩放级别1有两个平铺,东方和西方。随后的缩放级别水平方向的瓷砖数量是垂直方向的两倍。

某些图块映射服务器可能需要不同的图块编号。使用ExpressionEvaluator变压器很容易做到这一点。例如,要转换为从中间开始向右编号的瓷砖编号,可以使用以下表达式:
column_1=_tile_column-(2**(_zoom_level-1))row_1=(2**(_zoom_level-2)-1)-_tile_row


GoogleCRS84Quad缩放级别0:
用户添加的图像

GoogleCRS84Quad缩放级别1:
用户添加的图像

GoogleCRS84Quad缩放级别3:
用户添加的图像

GlobalCrs84比例和GlobalCrs84像素

这两种平铺方案基本上是相同的,除了缩放级别缩放。webmaptiler的源图像必须在wgs 84 lat/long坐标系中(epsg:4326)。范围来自纬度90,经度-180到纬度-90,经度180,单位为度。

与以前的方案不同,这些具有用户定义的图块大小,所以图块的数量取决于缩放级别和图块大小。例如,GlobalCrs84Pixel平铺,缩放级别为4,平铺大小为270,缩放级别为5、瓷砖尺寸为540的瓷砖组将产生相同数量的瓷砖,但缩放级别5的平铺将具有两倍的分辨率:

用户添加的图像



GlobalCrs84比例缩放级别使用一致的比例因子,每级像素大小是其上像素大小的一半:

水平
1.25764139776733
0.628820698383665
0.251528279553466
0.125764139776733
4 6.2882069883665E-2型
5个 2.51528279553466E-2号
1.25764139776733E-2号
6.2882069883665E-3型
2.51528279553466E-3号
9 1.25764139776733E-3号
10个 6.2882069883665E-4型
十一 2.51528279553466E-4号
十二 1.25764139776733E-4号
十三 6.2882069883665E-5型
十四 2.51528279553466E-5号
十五 1.25764139776733E-5号
16 6.2882069883665E-6型
十七 2.51528279553466E-6号
十八 1.25764139776733E-6
十九 6.2882069883665E-7型
二十 2.51528279553466E-7号


GlobalCrs84像素缩放级别有些随意,选择方便的像素大小:

水平 间距(度)
零点五
0.33333333333333 33
4 0.1666666666667
5个 8.333333333333333E-2
3.333333333333333E-2
1.6666666666667E-2号
8.333333333333333E-3
9 4.1666666666667E-3
10个 1.3888888888889E-3号
十一 8.333333333333333E-4
十二 2.7777777777778E-4型
十三 1.3888888888889E-4号
十四 8.333333333333333E-5
十五 2.7777777777778E-5型
16 8.333333333333333E-6
十七 2.7777777777778E-6
光栅 网状物 网络地图绘制程序 清华大学,2015年10月8日19:12:51格林尼治标准时间 戴维安特亚搏在线