HTML离线图与局部瓷砖通过传单



是否有一种方法可以使用HTML和JavaScript完全离线显示给定区域的地图?我正在寻找一种移动友好(读取Cordova(解决方案。

在此博客文章中有一个优雅的解决方案。我从中编写了一个完整的代码示例。这是:

1。创建地图图块

  • 下载移动地图集
  • 使用 OSMDROID ZIP 格式创建一个新的地图集
  • 进行地图和缩放选择,将您的选择添加到Atlas
  • 单击"创建地图集"
  • 解压缩地图集文件
  • 您的瓷砖具有以下格式: {atlas_name}/{z}/{x}/{y} .png ({z}代表" Zoom"(

2。设置HTML和JavaScript

  • 将您的Atlas文件夹复制到您的HTML root
  • 下载feflet.js and flaflet.css,然后将它们复制到html root
  • 使用以下代码创建index.html
    • 调整启动坐标并在 var mymap 的线上放大
    • 将Atlasname更改为您的文件夹名称,设置您所需的Maxzoom

3。你们都设定了!享受!

  • 在浏览器中运行index.html

<!DOCTYPE html> 
<html> 
	<head> 
		<title>Leaflet offline map</title>
		<link rel="stylesheet" charset="utf-8" href="leaflet.css" />
	<script type="text/javascript" charset="utf-8" src="leaflet.js"></script>
		<script>
			function onLoad() {
				var mymap = L.map('mapid').setView([50.08748, 14.42132], 16);
				L.tileLayer('atlasName/{z}/{x}/{y}.png',
				{    maxZoom: 16  }).addTo(mymap);
			}
		</script>	
	</head>
	<body onload="onLoad();"> 
		<div id="mapid" style="height: 500px;"></div>
	</body>
</html>

您应该一一做这些步骤

  1. 从https://openmaptiles.org/
  2. 下载特定区域的MBTILES文件
  3. 由Docker建立地图服务器
  4. 通过flaflet.js实现网页,并在您的代码中使用地图服务器IP地址。

相关内容

  • 没有找到相关文章

最新更新