如何添加sui mobile 自定义Atlas Creator的自定义地图源

如何添加Mobile Atlas Creator的自定义地图源_百度知道
如何添加Mobile Atlas Creator的自定义地图源
提问者采纳
将Google道路地图换成无偏移的道路地图(这个不好找.cn))2、将微软卫星地图换成一个偏移的卫星地图(如国内厂家的卫星地图,或者Google中国的卫星地图(ditu.google,Google只有在国外地图的(maps.google1
其他类似问题
为您推荐:
atlas的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何添加Mobile Atlas Creator的自定义地图源_百度知道
如何添加Mobile Atlas Creator的自定义地图源
方法有2种:1、XML配置文件(这个可以针对Google、MapABC、Open Cycle Map等相对简单的URL)2、BeanShell写的Java脚本,(这个可以进行复杂的计算,增加条件判断等,可以针对Soso地图等稍微复杂点的地图)通过配置地图源,不仅可以下载网上地图,还能支持对本地文件夹图片、zip压缩包和sqlite数据库作为源进行抽取和地图打包。
其他类似问题
为您推荐:
atlas的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁详解Mobile Atlas Creator1.9.16离线地图下载神器之下载自定义图源
详解Mobile Atlas Creator1.9.16离线地图下载神器之下载自定义图源
[摘要:Mobile Atlas Creator1.9.16离线舆图下载神器之下载自界说图源 本文细致的先容了若何应用Mobile Atlas Creator去下载自界说图源,Mobile Atlas Creator是用于下载图源的对象,本文测试的是下德舆图,]
Mobile Atlas Creator1.9.16离线地图下载神器之下载自定义图源&&&&&&本文详细的介绍了如何使用Mobile Atlas Creator来下载自定义图源,Mobile Atlas Creator是用于下载图源的工具,本文测试的是高德地图,其他地图也差不多类似。1、关于Mobile Atlas Creator的介绍&&&&Mobile Atlas Creator是用于下载图源的工具,此工具免费,相信大家也找过不少相关的软件,但是大多数都是收费的。很多制作手机离线地图的朋友也会用到此工具来下载图源。最新版本为1.9.16,官方网站:http://mobac.sourceforge.net/下载地址:http://sourceforge.net/projects/mobac/ 对于访问不稳定的朋友,也可以到咱51cto下载中心下载使用。下载地址:/data/1593599这里值得说下的就是,rmapsMobile Atlas Creator之前版本的地图源那是可以选择很多种类的商业地图的,后来由于某种原因(据说是商业公司的反对),导致新版本的去掉了,不过这也可以通过自定义图源来解决。http://rmaps.github.io/ 地图纠偏小工具2、详细使用教程自定义图源需要创建一个xml文档,然后放到Mobile Atlas Creator 1.9.16mapsources目录下面①、编写自定义xml文档&?xml&version="1.0"&encoding="UTF-8"?& &&&&&customMapSource& &&&&&&&&&name&gaode&/name& &&&&&&&&&minZoom&0&/minZoom& &&&&&&&&&maxZoom&19&/maxZoom& &&&&&&&&&tileType&png&/tileType& &&&&&&&&&tileUpdate&None&/tileUpdate& &&&&&&&&&url&/mapabc/maptile?x={$x}&y={$y}&z={$z}&/url& &&&&&&&&&backgroundColor&#000000&/backgroundColor&
&/customMapSource&上述是标准格式,可以根据需要进行修改。其中url是重点,关于url怎么获取,下文会有详细的介绍。url获取方法:首先清除浏览器的缓存 Ctrl+Shift+Delete就可以打开清除缓存界面。然后再用浏览器打开高德地图,高德地图 url:/ 随便拖动地图,浏览下,打开ChromeCacheView 来查看缓存下来的图片。如图所示:650) this.width=650;" src="/uploads/u/90/75/a56be2fd3c89bc.jpg" title="ChromeCacheView" alt="wKiom1PPcFOBPrf3AAVD5cR7Ubs759.jpg" />可以看到请求的地址:650) this.width=650;" src="/uploads/u/4c/aa/4caa0abfbdc195be0ab574e.jpg" title="url2.png" alt="wKioL1PPcZrS2IYKAAIGpTwd_Sk023.jpg" />/mapabc/maptile?x=6746&y=3101&z=13 这个地址直接复制到浏览器地址栏是可以访问,并且看到图片的!如图所示:650) this.width=650;" src="/uploads/u/94/7d/947d32cb7bbc6f10e2ec6c.jpg" title="url访问.png" alt="wKiom1PPcmnysI63AAII8xap7mk773.jpg" />把这个URL地址复制出来,进行一下处理,将& 替换成& x,y,z后面的值改成{$x},{$y},{$z}/mapabc/maptile?x={$x}&y={$y}&z={$z}②、软件设置 &&&软件打开之后是的默认界面650) this.width=650;" src="/uploads/u/57/45/4a628bf62e6.jpg" title="软件打开默认界面" alt="wKiom1PPZXjTioVFAAl2iEOJrM0343.jpg" />选择地图源为添加的gaode,这里就是上文的gaode.xml里面的name650) this.width=650;" src="/uploads/u/ad/9e/ad9e841cd538a4ee814d8b.jpg" title="图源选择" alt="wKioL1PPZwKD1Mn4AAHmUlEqhnM822.jpg" />③、转换地图册类型OSMTracker tile storage650) this.width=650;" src="/uploads/u/ae/92/ae36c9fe6afcc.jpg" title="转换地图册格式" alt="wKioL1PPftKSd-_BAAFG3dWoyps451.jpg" />这个类型根据需要进行选取。因为我这是下载切片,然后使用openlayers加载来使用。④、选择要下载的区域这个区域可以地图--》选择区域按--》多边形建议选择多边形,在地图上勾出需要下载的区域。建议区域不要选择太大,选择过大,下载慢,而且还会有限制。如图所示:650) this.width=650;" src="/uploads/u/08/54/ab5cfaf193cac.jpg" title="选择区域" alt="wKiom1PPZtXByWRpAAEmzjXl4Xk507.jpg" />⑤、添加选择的区域将第④步中勾选的区域保存到layer中650) this.width=650;" src="/uploads/u/d6/80/d680f124fac2aa5aeea8.jpg" title="添加选择的区域" alt="wKiom1PPZxrAYB3CAAHFX2V7FYo714.jpg" />选择下载适当的缩放级别,这个根据自己的需要进行调整。⑥、页面设置这里主要进行一些地图下载的设置。650) this.width=650;" src="/uploads/u/f8/07/f807bf22fe72.jpg" title="页面设置" alt="wKiom1PPbUvi4m_VAAIF4tBgohc104.jpg" />页面设置,建议附加部分都不要。不然下载下来的图片上面有经纬度网格线、页面编号、比例尺、指南针等信息。选择保存的目录。这个设置信息是可以保存下来,以后再用的,这样就不用每次都重复的设置了。⑦、下载650) this.width=650;" src="/uploads/u/da/93/dae8eced4fc3e45676bb66.jpg" title="下载" alt="wKioL1PPdE-BtDyWAAHvl8AY0ls893.jpg" />这个下载根据你勾选的地图区域的大小、缩放级别的多少来决定。下载之后,可以看到所下载的图片,650) this.width=650;" src="/uploads/u/0d/0b/0d0b3a90b2b2db8ebc4647b.jpg" title="文件存放结构" alt="wKioL1PPgsvifiIOAANOCN44HYM332.jpg" />文件目录存放的结构是:zxy.png的结构gaodetile未命名__172141gaode8209105.png其中8表示缩放级别为8,也就是url中z为8其中209表示x其中105表示y所示上述图片,可以构造出一个可访问的url地址:/mapabc/maptile?x=209&y=105&z=8 可以通过访问上述url地址和本地下载的图片来对比,发现是一样的。本文出自 “幽灵柯南的技术blog” 博客,请务必保留此出处http://enetq./7397
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊【教程】如何添加Mobile Atlas Creator的自定义地图源
【教程】如何添加Mobile Atlas Creator的自定义地图源
重要声明:在下载和使用商业地图前,请确保您的行为在地图供应商的许可范围以内,或者已获得相关的授权,并遵守所在国家和地区的相关测绘与地图发布的法律和规定,本文只介绍地图源分析的技术的方法,对下载和使用商业地图造成的知识产权破坏或其它违法与侵权问题,概不承担任何责任。Mobile Atlas Creator(下面简称MOBAC)从版本1.9开始,不再默认内置各种商业地图(如Google、Bing、Yahoo等)的地图源,改为支持用户自定义地图源,您可以通过配置XML文件,BeanShell脚本,或者开发独立的Jar包,来使得Mobile Atlas Creator支持更多您需要下载的地图。本文将以Google地图为例,为您介绍XML和BeanShell的基本配置方法。1、单图层地图源的XML配置方法我们以Google地图为例,首先打开Google地图网站 , 标准的Web摩卡托投影地图都会将地图拆分为等尺寸的正方形瓦块(详见:/forums/viewtopic.php?f=16&t=250),接下来我们需要用浏览器自带的工具分析出地图网站的图片瓦块的网址规律,我们下面将主要以Chrome浏览器为例进行介绍,使用其它浏览器的用户也可以用“网页检查器(Safari)”或者“Web开发者(Firefox)”等类似菜单功能来分析这些网址,原理相似,我们不做更多介绍。点击Chrome浏览器的菜单(地址栏右侧,图标是三个横线的)按钮,选择:工具 -& 开发者工具,如下所示:在开发者工具中,切换到Network(网络请求)页,此时工具会列出所有发生了的网络请求,请随便放缩一下地图,您会看到产生了很多新请求,标准的地图图片请求都是256x256大小的标准图片,选择其中的任意一个地图图片请求,右侧Preview就会列出该图片的网址和预览图。(注意:如果请求太多不好找,建议用底部的“Images”过滤功能来只显示图片,或者先用清空按钮清除现有请求,再缩放下地图刷新出新的图片)。监测到的Google地图的图片请求如下所示:可以看到该图片的网址为:上面例子中图片使用了服务器,大多数在线地图都支持多台服务器(负载均衡技术)同时工作,也就是说同一图片在多个服务器都有备份,不同用户随机连接到不同服务器,以保证连接速度。MOBAC也支持对多台服务器进行同时连接下载,这需要我们找出所有可能的服务器的名称,如上例中的, 我们猜测可能还存在mt0,mt1,mt2,mt4.....,可以通过试探法验证出到底有哪些服务器:首先点击图片网址在新窗口中打开图片,然后尝试将地址栏中的数字3依次替换为0,1,2,3,4,5.....,检查图片网址是否仍然可用(返回相同的图片)。通过试验您会发现Google地图服务器一共4个,分别是mt0, mt1, mt2,mt3接下来用“记事本”或者其它文本编辑工具新建一个文本文件,输入下面的内容:代码:
&?xml version="1.0" encoding="UTF-8"?&&&& & &&My Own Google Map&/&& & &&0&/&& & &&20&/&& & &&PNG&/&& & &&&![CDATA[http://mt{$serverpart}./vt/lyrs=m@&hl=zh-CN&gl=CN&src=app&x={$x}&y={$y}&z={$z}&s=G]]&&/&& & &&0 1 2 3&/&&/& Map Source XML 上面配置中, &name&是自定义的地图源名字,注意不要和任何现有地图源名字重复哦。&url&就是刚才用浏览器分析出的url,只是需要把其中x,y,z的具体的值,替换为{$x}, {$y}, {$z}这样的引用。同时把原url中mt3替换为了mt{$serverpart},并在接下来的&serverParts&....&/serverParts&配置中写入“0 1 2 3”。 在下载开始时,MOBAC会将{$x}, {$y}, {$z}替换为真实的x,y,z, 将{$serverpart}替换为0 1 2 3中随机的一个。将此文件保存为一个xml文件,如MyMap1.xml, 存到Mobile Atlas Creator安装目录下面mapsources子目录,重启MOBAC, 你就可以在MOBAC的地图源列表中看到刚刚添加的“My Own Google Map”地图源了。注意: 如果XML配置文件中使用了汉字,必须在保存时选择编码为UTF-8,否则无法正常工作。在一个&customMapSource&配置中,可以配置以下参数配置:&name&: 必填参数,地图源名字,支持中文, 但保存时文件必须保存为UTF-8的编码哦。&minZoom&: 必填参数,地图的最小缩放等级,如0级&maxZoom&: 必填参数,地图的最大缩放等级,如20级&tileType&: 必填参数,地图的图片格式,支持JPG、PNG、GIF, 3种配置&url&: 必填参数,最重要的参数,表示访问的url规则,即:如何由x,y,z 拼出图片的在线网址,我们会在后面详细介绍该参数的配置。&invertYCoordinate&: 可选参数,是否反转y,有些地图y编号是反向增长的,即最底下一行为0,越上北,编号越大,这时需要将此设为true,才能正常使用。&serverParts&: 可选参数,指定多台服务器,作用于替换掉&url&中的{$serverport}部分&backgroundColor&: 可选参数,地图的背景颜色,只对透明的地图或请求失败时才有意义,并按照#RGBA的格式,例如#FF00007F表示半透明的红色。&tileUpdate&: 可选参数,绝对本地缓存的地图图片的刷新逻辑,支持:IfNoneMatch、ETag、IfModifiedSince、LastModified、None(默认)。前面4个需要服务器支持,None表示不考虑服务器标记,只按照MOBAC全局设置中设置的过期时间为准。&ignoreErrors&: 可选参数,在下载出错时是否忽略错误,继续下载。如果设置为false(默认),会在显示一个红色叉在对应位置,并且会记录到总出错计数中,注意:对于天地图2.0, 因为地图设计的特殊性,必须将ignoreErrors设为true,才能正常下载(详细原因有机会再给大家详细介绍)。2、多图层地图源的XML配置方法对于Google混合地图等地图源,通过分析Network的网络请求,您会发现每个地方的图片其实是由2张地图叠加而成,底层是卫星图,上层是透明的道路地图,如下所示:道路地图层(在上):网址为:/vt/imgtp=png32&lyrs=h@&hl=zh-CN&gl=CN&src=app&x=47&y=23&z=6&s=Gali卫星地图层(在下)网址为:/vt/lyrs=s@126&hl=zh-CN&gl=CN&src=app&x=47&y=23&z=6&s=Gali合并后效果:要支持这样的多图层地图源,您可以是有MOBAC的多图层地图源(&customMultiLayerMapSource&)配置,它可以将任意多个不同类型的地图源叠在并输出。上面例子中对应的Google混合地图的XML文件如下代码:
&?xml version="1.0" encoding="UTF-8"?&&&&&&My Own Google Hybrid Map&/&&&& &&& & &&My Own Google Satellite&/&& & &&0&/&& & &&20&/&& & &&PNG&/&& & &&&![CDATA[http://mt{$serverpart}./vt/lyrs=s@126&hl=zh-CN&gl=CN&src=app&x={$x}&y={$y}&z={$z}&s=G]]&&/&& & &&0 1 2 3&/&& &/&& &&& & &&My Own Google Street&/&& & &&0&/&& & &&20&/&& & &&PNG&/&& & &&&![CDATA[http://mt{$serverpart}./vt/imgtp=png32&lyrs=h@&hl=zh-CN&gl=CN&src=app&x={$x}&y={$y}&z={$z}&s=G]]&&/&& & &&0 1 2 3&/&& &/&&/&&/&& Map Source XML 注意配置的顺序将影响最终合并效果,配置越靠前,合并时放的位置越下面。将上面的文件保存为xml,保存到mapsources子目录,重启MOBAC,即可看到新增的地图源:My Own Google Hybrid Map当多图层中的某一个图层,已经在其它配置文件中配置过,则您也可以直接通过地图源名字引用这些图层,例如,假设Map1和Map2是已经存在的地图源,而Map3是不存在的,则我们可以用下面的多图层地图源来合并Map1,Map2,Map3,其中Map1在最下面,Map3在最上面。代码:
&?xml version="1.0" encoding="UTF-8"?&&&&&&My Own Google Hybrid Map&/&&&& & &mapSource&& & & & &&Map1&/&& & &/mapSource&& & &mapSource&& & & & &&Map2&/&& & &/mapSource&& & &&& & &&Map3&/&& & &&0&/&& & &&20&/&& & &&PNG&/&& & &&...........&/&& &/&&/&&/&& Map Source XML 3、其它类型地图源的XML配置方法除了使用&customMapSource&配置标准的Web摩卡托投影地图,MOBAC还支持WMS,CloudMade,本地文件,本地Zip,本地Sqlite等多种格式的网络服务或本地资源作为地图源。例如,下面是TerraServer地图的WMS配置代码:
&?xml version="1.0" encoding="UTF-8" standalone="yes"?&&&& &&TerraServer WMS&/&& &&12&/&& &&18&/&& &&JPG&/&& &version&1.1.1&/version&& &&DRG&/&& &&/ogcmap6.ashx?&/&& &coordinatesystem&EPSG:4326&/coordinatesystem&& &aditionalparameters&&![CDATA[&EXCEPTIONS=BLANK&Styles=]]&&/aditionalparameters&& &&#000000&/&&/&& Map Source XML 不同类型地图源对应的顶级标签如下:&customWmsMapSource&: WMS 地图&cloudMade&: cloudMade地图&localTileFiles&: 本地瓦片图片,必须按照zoom/x/y.png 或者其它支持的目录结构与命名规范存储&localTileZip&: 存储在Zip中的本地瓦片图片,zip内部目录结构的要求和&localTileFiles&一样。&localTileSQLite&: 本地Sqlite离线地图文件,目前支持RMaps, MBTiles, BigPlanetTracks, NaviComputer 和 OSMAND。关于这些地图源的详细配置参数,这里不做进一步介绍,有需要的朋友可以参考MOBAC的官方Wiki:http://sourceforge.net/apps/mediawiki/mobac/index.php?title=Custom_XML_Map_Sources#Custom_WMS_map_sources对于使用的用户,可以使用我们开发的叠加本地图片到离线地图的功能,即类似Google Earth KMZ Overlay,将一张本地图片,按照指定的经纬度范围,平铺到地图的某个区域,并在所有缩放等级都可见。下面是一个本地图片叠加层的例子:代码:
&?xml version="1.0" encoding="UTF-8" standalone="yes"?& && & &&本地文件+卫星地图&/&& &&PNG&/&& &&& & &mapSource&& & & & &&Google 卫星地图&/&& & &/mapSource&& & &localImageFile&& & & & &&Image1&/&& & & & &imageFile&C:\image\test.png&/imageFile&& & & & &&0&/&& & & & &&20&/&& & & & &boxNorth&33.52&/boxNorth&& & & & &boxSouth&32.42&/boxSouth&& & & & &boxWest&106.51&/boxWest&& & & & &boxEast&106.99&/boxEast&& & & & &retinaDisplay&false&/retinaDisplay&& & & & &&#&/&& & &/localImageFile&& &/&&/&& Map Source XML 它将本地的C:\image\test.png图片,平铺到纬度32.42 ~ 33.52, 经度:106.51 ~ 106.99 这个范围。并且与本地的“Google 卫星地图”这个图层进行叠加。关于本地图片叠加层的更多使用技巧,请参考:/forums/viewtopic.php?f=16&t=2484、BeanShell地图源配置方法对于一些比较复杂的地图,如Soso地图,通过分析其图片网址,会发现图片地址的规则不是简单的使用x,y,z,还引入了一些新的变量如dx,dy,或者对x,y,z进行复杂运算和判断才能构造出图片网址。例如 x + 20,
y/2, z-1, 等等,这个时候,简单的XML配置文件无法应付,MOBAC为大家提供了更高阶的BeanShell脚本来支持。BeanShell脚本允许您使用Java语法书写从x,y,z到最终网址之间的各种运算和条件判断,需要您具有一定的编程知识,您可以在其中使用Java的绝大多数语法和函数,也可以像普通脚本那样定义无类型的变量,是非常强大的地图源配置手段。考虑到版权问题,我们这里不在以真实地图为例,而是以一个假想的地图来介绍BeanShell的使用:假设有一个在线地图MyBSMap,其图片网址形如:/tile?p=12&q=MM2013&m=97&src=app通过分析,我们了解了它的p,q,m参数的规则为:代码:
p = x - 64;q = “MM” + y;当z&10时, m = z, 当z & 10时,m = z + x; Bean Shell 根据上述规则,我们用记事本新建一个文本文件如下:代码:
//每个Beanshell必须这个函数,传入x,y,z, 用户自行拼接一个网址字符串并返回;String getTileUrl( int zoom, int x, int y ) {& & p = x - 64;& & q = "MM" + y;& & int m;& & if(z & 10)& & {& & & & m = z;& & } else {& & & & m = x + z& & }& & return "/tile?p="+ p +"&q="+ q +"&m="+ m +"&src=app";} tileType = "png"; // 必须,可以等于 "png" ,"jpg" 或 "gif"name = "My BSH Map"; //必须,并且不能和其它地图源重名tileSize = 256; // 图片大小,可选minZoom = 1; & &// 最小等级,可选maxZoom = 18; & // 最大等级,可选 Bean Shell 注意:String getTileUrl( int zoom, int x, int y ) 函数是必须的函数,tileType和name属性也是必须的属性,name指定的名字将是地图源的显示名,不能和其它地图源重复哦!编辑好后将文件存储为bsh文件,如mybshmap.bsh, 保存到MOBAC目录的mapsources子目录,重启MOBAC,即可以看到新增的 "My BSH Map"地图源了。如果文件中含有汉字,请保存为UTF-8编码,否则将显示为乱码或出错!先写这么多了,其实,对于复杂的在线地图,最困难的在于分析URL规则,这需要您有一定的Javascript基础和足够的耐心,也希望您能将自己的分析和所得及时分享,让更多的人收益哦。
ZaxMiocool Inc.
★★★★★&帖子: 487注册:
这个问题曾发在/forums/viewtopic.php?f=16&t=229&p=477#p477贴子后,发错了地方,在这里重发一下。不好意思。网址是http://www.maps-/比如我想下载海拔relief图,我已经将链接查到,并用替代格式改为:{$z}_{$x}-{$y}.jpg其中Z2是地图缩放级别为2,这个数字可从0变为18;row0表示的是第几排,2级地图是,共4排,也就是row后的数字可从0变到3。我想问有没有方法用某一格式代替可变数字,否则只能出来固定某个缩放级别,且只能显现一排高为256的图片。我曾试过用&serverParts&替代,但失败了。请问哪位高手能解决这个问题?万分感谢。
★★&帖子: 8注册:
icefirechu 写道:这个问题曾发在/forums/viewtopic.php?f=16&t=229&p=477#p477贴子后,发错了地方,在这里重发一下。不好意思。网址是http://www.maps-/比如我想下载海拔relief图,我已经将链接查到,并用替代格式改为:{$z}_{$x}-{$y}.jpg其中Z2是地图缩放级别为2,这个数字可从0变为18;row0表示的是第几排,2级地图是,共4排,也就是row后的数字可从0变到3。我想问有没有方法用某一格式代替可变数字,否则只能出来固定某个缩放级别,且只能显现一排高为256的图片。我曾试过用&serverParts&替代,但失败了。请问哪位高手能解决这个问题?万分感谢。使用下面的串应该可以: {$z}/row{$y}/{$z}_{$x}-{$y}.jpg如果需要更为复杂的计算,建议使用BeanShell脚本,详情见上面的介绍,例如,同样这个地图,BeanShell的主函数写为即可:BeanShell还支持加减乘除,String getTileUrl( int zoom, int x, int y ) {
return "http://www.maps-/layer/relief/z" + zoom + "/row" + y + "/" + zoom + "_" + x + "-" + y + ".jpg";
ZaxMiocool Inc.
★★★★★&帖子: 487注册:
兄弟大才,修改的串能用,感谢了!
★★&帖子: 8注册:
地图链接为http://mrdata.usgs.gov/mineral-resources/copper-smelters.html用CacheView查看到的链接是http://mrdata.usgs.gov/services/country?LAYERS=country&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&BBOX=-90,-45,90,45&WIDTH=768&HEIGHT=384请问这个链接能修改成一个MAC的文件吗?谢谢。这个需要用到比较高阶的BeanShell来配置,而无法通过XML配置。您的链接应该是一些实时渲染引擎(如ArcGIS)渲染出的地图,其中WIDTH和HEIGHT表示整个地图是一张大图,而不是256x256的小图,您需要每个256x256的小图都用上面的连接生成一次就可以了。关于BBOX,这是地图区域的另外一种表达方式,每个256x256的小图,是可以用x,y,z产生一个对应的BBOX的。USGS地图源在下面的链接中应该有现成的(地图制作 & 国外地图源 & USGS TOPO (full).bsh),提供0-19级的USGS TOPO地图,依靠BeanShell配置。您可以参考一下,里面应该也包括的BBOX的生成算法:/share/link?shareid=507619&uk=
★★&帖子: 8注册:
好的,谢谢版主,我学习一下再问
★★&帖子: 8注册:
static import java.lang.Math.*;//USGS_World copper smelterslv 1 ~ lv 15String getTileUrl( int zoom, int x, int y )
//http://mrdata.usgs.gov/services/sedznpb?TRANSPARENT=true&LAYERS=sedznpb&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image%2Fpng&SRS=EPSG%3A4326&BBOX=-180,-90,180,90&WIDTH=768&HEIGHT=384
return "http://mrdata.usgs.gov/services/sedznpb?TRANSPARENT=true&LAYERS=sedznpb&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image%2Fpng&SRS=EPSG%3A4326&BBOX="
+ mercatorTileEdges(x,y,zoom) +
"&WIDTH=256&HEIGHT=256";
}numTiles(z){
return abs(pow(2,z));}mercatorToLat(mercatorY){
return(toDegrees(atan(sinh(mercatorY))));}latEdges1(y,z){
n = numTiles(z);
unit = 1 /
relY1 = y *
lat1 = mercatorToLat(PI * (1 - 2 * relY1));
return lat1;}latEdges2(y,z){
n = numTiles(z);
unit = 1 /
relY1 = y *
relY2 = relY1 +
lat2 = mercatorToLat(PI * (1 - 2 * relY2));
return lat2;}lonEdges1(x,z){
n = numTiles(z);
unit = 360 /
lon1 = -180 + x *
return lon1;}lonEdges2(x,z){
n = numTiles(z);
unit = 360 /
lon1 = -180 + x *
lon2 = lon1 +
return lon2;}tileEdges(x,y,z){
return (latEdges2(y,z) + "," +
lonEdges1(x,z) + "," +
latEdges1(y,z) + "," +
lonEdges2(x,z));}lon2mercator(l){
return (l *
/ 180);}lat2mercator(l){ r = toRadians(l); lat = log((1+sin(r)) / (1-sin(r))); return (lat *
/ 2 / PI);}mercatorTileEdges(x,y,z){
return (lon2mercator(lonEdges1(x,z)) + "," +
lat2mercator(latEdges2(y,z)) + "," +
lon2mercator(lonEdges2(x,z)) + "," +
lat2mercator(latEdges1(y,z)));}tileType = "png"; // required - image format "png" "jpg" or "gif"name = "mineral";tileSize = 256; // optionalminZoom = 0;
// optionalmaxZoom = 15;
// optionaltileUpdate = TileUpdate.N // TileUpdate.IfNoneMatch, TileUpdate.ETag, TileUpdate.IfModifiedSince, TileUpdate.LastModified, TileUpdate.None //backgroundColor = "#ffffff"; // optional - supported since MOBAC 1.9.1上面这段语句,我就修改了标红部分,但在MAC上看不到,楼主能帮忙分析一下吗?谢谢。
★★&帖子: 8注册:
icefirechu 写道:static import java.lang.Math.*;//USGS_World copper smelterslv 1 ~ lv 15String getTileUrl( int zoom, int x, int y )
//http://mrdata.usgs.gov/services/sedznpb?TRANSPARENT=true&LAYERS=sedznpb&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image%2Fpng&SRS=EPSG%3A4326&BBOX=-180,-90,180,90&WIDTH=768&HEIGHT=384
return "http://mrdata.usgs.gov/services/sedznpb?TRANSPARENT=true&LAYERS=sedznpb&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image%2Fpng&SRS=EPSG%3A4326&BBOX="
+ mercatorTileEdges(x,y,zoom) +
"&WIDTH=256&HEIGHT=256";
}....................上面这段语句,我就修改了标红部分,但在MAC上看不到,楼主能帮忙分析一下吗?谢谢。你好,之前没有仔细看您给的地图网站,这其实是一个WMS规格的地图,可以使用XML配置,无须BeanShell。例如您给出的country图层如下:代码:
& &&customWmsMapSource&& && &&name&USGS - Country&/name&& && &&minZoom&0&/minZoom&& && &&maxZoom&18&/maxZoom&& && &&tileType&JPG&/tileType&& && &&version&1.1.1&/version&& && &&layers&country&/layers&& && &&url&http://mrdata.usgs.gov/services/country?&/url&& && &&coordinatesystem&EPSG:4326&/coordinatesystem&& && &&aditionalparameters&&![CDATA[&SERVICE=WMS&STYLE=]]&&/aditionalparameters&& && &&backgroundColor&#000000&/backgroundColor&& &&/customWmsMapSource&这个地图还有一个文字标记层(copper-smelters) ,配置类似,注意tileType变为了PNG。顺便介绍下WMS地图源配置:customWmsMapSource 规则为url + “REQUEST=GetMap” + "&LAYERS=" + layers + "&SRS=" + coordinatesystem + "&VERSION=" + version + "&FORMAT=image/" + tileType.getMimeType() + "&BBOX=.......&WIDTH=256&HEIGHT=256" + 其中:getMimeType()会自动把JPG转换为jpeg, PNG -& png, GIF -& gif, 上面规则中没有的参数,只要加到&aditionalparameters& 中即可。最后,BeanShell也可以配置上面的各个图层,只是BBOX的计算规则和之前的ArcGIS的规则不同,应该是:"左下角经度,左下角纬度, 右上角经度,右上角纬度”的轨迹, 即:
"&BBOX=" +& lonEdges1(x,zoom) + "," + latEdges2(y,zoom) + "," + lonEdges2(x,zoom) + "," + latEdges1(y,zoom);此外,你还可以用MOBAC函数来进行上面的计算,这样就可以把BeanShell中一大堆计算函数都删除了:代码:
"BBOX=" + Tools.xTileToLon(x * 256, zoom) + "," + Tools.yTileToLat((y+1)*256,zoom) + "," + Tools.xTileToLon((x+1)*256,zoom) + "," + Tools.yTileToLat(y*256,zoom)
ZaxMiocool Inc.
★★★★★&帖子: 487注册:
谢谢楼主,我想要的就是那个PNG的矿藏标注图层,用您给的方案解决了问题,又学到了一招。因为没学过编程,只能一步一步地向楼主学,实在不好意思。再次表示感谢。
★★&帖子: 8注册:
能提供个搜狗高清卫星地图的源?多谢。
★★&帖子: 2注册:
发表评论:
TA的最新馆藏}

我要回帖

更多关于 atlas copco 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信