`
longgangbai
  • 浏览: 7338990 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GIS的学习(四十九)命令行使用 osmdroid-packager下载生成地图碎片

阅读更多

         在以前网上经常介绍使用MobileAtlasCreator 下载地图碎片做离线地图,现在可以采用OSMMapTilePackager下载地图碎片,实现地图离线地图的碎片生成.

 

官方地址: 

http://code.google.com/p/osmdroid/wiki/HowToUsePackager

 

详细官方介绍如下

 

 

HowToUsePackager  
Instructions how to use the Tile Packager
Updated Mar 28, 2011 by neilboyd

Introduction

This page explains how to use the osmdroid tile packager.

You will probably find it easier to use MobileAtlasCreator instead of this

Contents

  • Why you might want to use it
  • Determining the map area
  • Run the tile packager
  • Using the output

Why you might want to use it

You can use the tile packager in order to load tiles onto your device so that you will not need an internet connection when running an application that uses osmdroid.

Determining the map area

The first thing you need to do is to decide the area that you want to download. This means determining the coordinates. The easiest way is to go to OpenStreetMap.org, view the area that you want to download, and then click on the "Export" tab. You can then click the "Manually select a different area" link and choose your area by dragging a box over it. The coordinates are displayed in the "Area to Export" box.

Below is an example of choosing the lovely town of Haarlem in The Netherlands. This shows that the coordinates are:

North: 52.4244

East: 4.6746

South: 52.3388

West: 4.5949

Run the tile packager

Download osmdroid-packager-x.xx.jar.

Here is an example command line to download the area selected in the example above:

第一种方式:
1.设置环境变量的classpath
set classpath=osmdroid-android-3.0.3.jar;osmdroid-packager-3.0.3.jar;slf4j-android-1.5.8.jar;sqlitejdbc-v056.jar 
2.执行下载的命令
 java org.andnav2.osm.mtp.OSMMapTilePackager -u http://tile.openstreetmap.org/%d/%d/%d.png -t Mapnik -d haarlem.zip -zmax 18 -n 52.4244 -s 52.3388 -e 4.6746 -w 4.5949

 

 


 

第两种方式

1.设置环境变量

set classpath=osmdroid-android-3.0.4.jar;osmdroid-packager-3.0.4.jar;slf4j-android-1.5.8.jar;sqlitejdbc-v056.jar 
2.执行下载的命令
java org.osmdroid.mtp.OSMMapTilePackager -u http://tile.openstreetmap.org/%d/%d/%d.png -t Mapnik -d haarlem.zip -zmax 18 -n 52.4244 -s 52.3388 -e 4.6746 -w 4.5949

 

 


 

参数的详细解释:

Here's what the parameters mean:

-u http://tile.openstreetmap.org/%d/%d/%d.png This is the pattern for tiles for the Mapnik format.
-t Mapnik Location of the temporary download location. This should be the renderer name if you intend to use the zip directly in osmdroid.
-d haarlem.zip Zip file to create when finished.
-zmax 18 Maximum zoom level to download tiles for.

 

The -d parameter is optional, in which case it won't create a zip file. In that case it also won't delete the temp files, since these are actually the required result. You can also use a .gemf or .sqlite extension in which case it will create an archive of the corresponding type.

Using the output

Just copy the zip to /sdcard/osmdroid on your device.

 

 

 

本文相关内容只用于个人研究,若用于商业请自行负责。

 

1. 下载Google地图切片到本地:如果没有要求地图显示中文,则可以用Google Maps Downloader下载Google地图到本地;如果要显示中文地图,则要用China Google Maps Downloader

 

2. 在tomcat服务器建个项目gmcn,为了方便查找文件,将文件按照zoom/x存放,如图:

 

 

3. 利用OpenLayers.Layer.TMS显示地图,重点是get_my_url()找到要显示的切片

 

<html>
	<head>
		<title>Google Local Tiles</title>
		<link rel="stylesheet" href="css/style.css" type="text/css" />
		<script src="js/OpenLayers/lib/OpenLayers.js"></script>

		<script type="text/javascript">
			var map, layer; //complex object of type OpenLayers.Map
		
			//Initialise the 'map' object
			function init() {
		
				map = new OpenLayers.Map("map", {
					maxExtent : new OpenLayers.Bounds(-20037508.3427892,
							-20037508.3427892, 20037508.3427892, 20037508.3427892),
					numZoomLevels : 18,
					maxResolution : 156543.0339,
					units : 'm',
					projection : "EPSG:900913",
					displayProjection : new OpenLayers.Projection("EPSG:4326")
				});
		
				layer = new OpenLayers.Layer.TMS("Name",
						"http://10.0.0.239:8081/gmcn/", {
							'type' : 'png',
							'getURL' : get_my_url
						});
		
				map.addLayer(layer);
		
				map.addControl(new OpenLayers.Control.Scale());
				map.addControl(new OpenLayers.Control.MousePosition());
				map.addControl(new OpenLayers.Control.LayerSwitcher());
		
				var lonLat = new OpenLayers.LonLat(117.62519, 39.52329);
				lonLat.transform(map.displayProjection, map.getProjectionObject());
				map.setCenter(lonLat, 8);
			}
		
			function get_my_url(bounds) {
				var res = this.map.getResolution();
				var x = Math.round((bounds.left - this.maxExtent.left)
						/ (res * this.tileSize.w));
				var y = Math.round((this.maxExtent.top - bounds.top)
						/ (res * this.tileSize.h));
				var z = this.map.getZoom();
		
				var path = "" + z + "/" + x + "/gmcn_" + x + "_" + y + "_" + z + "." + this.type;
				var url = this.url;
				if (url instanceof Array) {
					url = this.selectUrl(path, url);
				}
				return url + path;
		
			}
		</script>
	</head>

	<!-- body.onload is called once the page is loaded (call the 'init' function) -->
	<body onload="init();">

		<!-- define a DIV into which the map will appear. Make it take up the whole window -->
		<div style="width: 100%; height: 100%" id="map"></div>

	</body>

</html>

 

参考:

Using Custom Tile Sources / Google-like Tile Layer Support

分享到:
评论

相关推荐

    osmdroid-android-5.6.4.aar

    设计用于完全替换 Android 内部的 MapView 类,包含一个模块化的地图拼图,支持在线和离线地图以及覆盖地图,支持标注图标、位置跟踪和绘制形状。地图引擎使用 OpenStreetMap

    osmdroid 加载geopackage离线底图

    在本文中,我们将详细探讨如何使用osmdroid加载GeoPackage格式的离线地图数据。 GeoPackage是一种开放标准的数据容器,由Open Geospatial Consortium (OGC)制定,用于存储地理空间信息。它可以包含多种地理数据类型...

    spatialite-gis-win-x86-ALPHA-1

    这个特定的版本——"spatialite-gis-win-x86-ALPHA-1" 是针对Windows平台的32位版本,且标记为ALPHA阶段,意味着这是一个测试版,可能包含未解决的问题或不稳定性。 **SQLite与Spatialite**: SQLite是一款轻量级的...

    microsoft-windows-netfx3-ondemand-package.cab

    win10解决安装.NET Framework 3.5安装不上,错误代码:0x800F081F,解决办法:超级管用。

    全国 1-5 级河流 gis 地图shp,xml,shx,dbf文件

    全国 1-5 级河流 gis 地图shp,xml,shx,dbf文件 全国 1-5 级河流 gis 地图shp,xml,shx,dbf文件 全国 1-5 级河流 gis 地图shp,xml,shx,dbf文件

    GIS.rar_csharp gis_gis_gis csharp_gis-ae_图层渲染

    在这个名为“GIS.rar_csharp gis_gis_gis csharp_gis-ae_图层渲染”的压缩包中,我们主要探讨的是使用C#编程语言和ArcEngine 9.2开发GIS应用,尤其是关于图层渲染的技术。 ArcEngine是Esri公司提供的一款强大的GIS...

    一个非常好用gis arctool的工具--距离角度生成点神器!

    一个非常好用gis arctool的工具--距离角度生成点神器!只需要将该工具添加到ArcGIS自定义工具箱里面,双击即可运行,方便高效。

    GIS地图下载器,下载高德地图、百度地图、行政边界、乡镇边界

    GIS(Geographic Information System,地理信息系统)是一种集成了...总之,掌握"GIS地图下载器"的使用,将极大地拓展我们在地理信息领域的应用能力,无论是对地图数据的获取、处理还是分析,都能带来极大的便利。

    简单的GIS系统

    9. **地图服务**:考虑到GIS系统的分享功能,可能还涉及到地图瓦片服务、WMS(Web Map Service)或WFS(Web Feature Service)等,允许用户在线查看和下载地图数据。 10. **数据库集成**:为了存储和检索大量的地理...

    栅格STI计算-基于R的STI-package

    标准化温度指数(STI)已经被广泛应用于高温干旱复合灾害的研究中,其设计思想和标准化降水指数(SPI)相似,但是STI假设温度服从正泰分布(Hansen, et al., 2012),程序实现了如何基于R的STI-package...

    基于RS和GIS的土地利用动态变化分析----以南京市高淳区为例

    基于RS和GIS的土地利用动态变化分析----以南京市高淳区为例,吴红云,张阳,利用GIS与RS技术,基于1995、2005、2015三期遥感影像研究南京市高淳区的土地利用变化规律,首先利用EXCEL生成1995-2005、2005-2015两个...

    gis数据地图模块.rar_Delphi GIS_delphi-gis_gis_gis 地图_地图

    综上所述,这个压缩包可能提供了使用Delphi开发GIS应用的示例代码或库,帮助开发者理解和构建GIS地图模块。开发者可以通过解析和学习这些资源,掌握如何在Delphi中处理地理数据、绘制地图、执行空间分析等核心GIS...

    九段线地图-线图-GIS-科研教育用途

    标题中的“九段线地图-线图-GIS-科研教育用途”揭示了这个压缩包文件主要包含的内容。九段线是中国对南海海域权益边界的标识,它在地理、历史和法律上具有重要意义。线图通常指的是用线条表示数据或地理特征的图形,...

    行业-电子政务-生成电子地图的方法.zip

    电子地图的生成涉及到多个技术环节,包括地理信息系统(GIS)、遥感(RS)、全球定位系统(GPS)以及大数据处理等。下面将详细介绍这些知识点。 首先,地理信息系统(GIS)是生成电子地图的核心工具。GIS是一种集成...

    DIVA-GIS 使用说明

    DIVA-GIS 使用说明 DIVA-GIS 是一个功能强大的 GIS 软件,具有强大的空间分析和制图功能。本文将对 DIVA-GIS 的使用进行详细的说明,以便读者能够快速掌握 DIVA-GIS 的使用方法。 生成 C3P 项目区地图 要生成 C3P...

    OSM地图瓦片下载器0.2

    《OSM地图瓦片下载器0.2:深入解析与应用》 OpenStreetMap(OSM)是一个全球性的开源地理信息系统,它允许用户共享和编辑地理数据,创建自由、详细的地图。OSM地图瓦片下载器0.2是专为获取和存储OSM地图数据而设计...

    GIS教案-第九讲-可视化与地图制图PPT课件.ppt

    GIS教案-第九讲-可视化与地图制图PPT课件.ppt

    GIS数据转换器(矢量-矢量)转出的城市农村社区地图

    GIS数据转换器(矢量-矢量)转出的城市农村社区地图

    《Visual C++开发GIS系统------开发实例剖析》

    《Visual C++开发GIS系统——开发实例剖析》是一本深入探讨使用Microsoft的Visual C++编程语言进行地理信息系统(GIS)开发的专业书籍。GIS是信息技术与地理科学的交叉领域,它涉及地图制作、空间数据分析、位置服务...

    mapnik&python生成离线地图瓦片

    《使用Mapnik与Python生成离线地图瓦片的详尽指南》 Mapnik是一个强大的开源GIS工具,常用于创建高质量的地图渲染。结合Python,我们可以利用它来生成离线地图瓦片,这对于户外活动、导航应用或是离线地图服务非常...

Global site tag (gtag.js) - Google Analytics