原文发布时间:2010-05-06
作者:毛毛虫
FME可以生成应用于网络制图平台Bing Maps 、Google Maps的瓦片。
使用转换器WebMapTiler,创建一系列Microsoft Virtual Earth可以使用的瓦片。这一操作通过重采样栅格到各种不同分辨率,然后把它们分成片。这个转换器与MSR MapCruncher产生相似的输出。
转换器各个参数如下所示:
其中,对于Zoom Level部分,这些参数指定了需要进行切片的级别。Level 1是最低的级别;Level 23是最高的详细级别,如果Minimum Zoom Level 没有指定,最小的缩放级别默认为1。如果Maximum Zoom Level 没有指定,最高的缩放级别将是最小的缩放级别。
对于Attributes部分中,Quadkeys是作为Bing Maps 的瓦片的唯一标志,zoom level、tile column和 tile row属性用来表示Google Maps瓦片。通常,通过这个转换器产生的栅格,对于Bing Maps按fanout方式以quadkey命名,对于Google Maps则是zoom level、 tile column和tile row组合的命名方式。
需要注意下面两点:
1、这个转换器只接受栅格几何要素。
2、这个转换器只接受EPSG:3785 (SPHERICAL_MERCATOR)、EPSG:900913(SPHERICAL_MERCATOR)或SPHERICAL_MERCATOR坐标系统。在使用这个转换器前,所有的要素必须重投影到这个坐标系统。
示例:
为了更好的理解这个转换器,先看一个别人做到一个例子,它是读入栅格数据,使用FME产生HTML文件,并对输入的栅格数据切片为PNG格式,加载到Virtual Earth的地图窗口。
下面是我们要生成的HTML代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>FME for VE</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script>
<script type="text/javascript">
var map = null;
var tileLayer;
function GetMap()
{
map = new VEMap('myMap');
map.LoadMap(new VELatLong(30.2619215931891,-97.7502715123838),15,'r' ,false);
GetTiles();
}
function GetTiles()
{
&nbs