我有一个离线地图的瓷砖(png图像),我想用这些瓷砖创建一个.mbtiles文件.请帮我如何使用我自己的图像创建一个.mbtiles文件而不是使用Tilemill软件?
提前致谢.
我读了MapBox和矢量图块,我想知道我是否理解这一点.
在某些未来,可以使用iOS MapBox渲染基于矢量的图块?如果是的话,矢量图块的RMTileSource会是什么样子?
通俗地说,我是否理解这一点:我将能够使用SVG甚至PDF文件作为MapBox的数据源而不是PNG图块?
如果是,是否还有可以试验的代码?
有人知道如何绕过 MapBox 的 500KB 图块大小限制吗?
他们网站上的规则规定:“在任何缩放级别,单个矢量图块都不能超过 500kb。”
我在几个缩放级别上的一组数据达到了这个限制。(我通过 Tippecanoe 运行 geojson 文件以 .mbtiles 格式创建此数据。)我尝试通过他们的 Uploads API 上传,但这仍然有限制。删除功能并在较低的细节级别上工作不是选项。我也尝试过向 MapBox 发送电子邮件,但没有收到任何消息。
当无法在线访问互联网时,我希望(离线)HTML5应用程序通过OSM文件显示OSM地图.
您能举例说明我如何在离线Html5应用程序中显示OSM图块,这些图块是从Mapsforge/Geofabrik等离线OSM地图文件加载的吗?
示例:通过openstreetmap.org我首先导出了一小部分地图.如何在Html5离线webapp中显示此下载的OSM地图.
我需要开发一个Android应用程序,需要显示地图,但必须一直在线下工作,地图对应一个小城市,浏览了一下我偶然发现osmdroid,这与小.mbtiles文件的使用似乎理想的,事实上我用这个好帖子来帮助我.
运行示例应用程序后,MapView显示但没有显示,只有默认灰色图块.我能找到的唯一类似于错误的是调试器上的以下片段:
09-26 16:55:53.931 353-353/com.example.myfirstapp2 I/dalvikvm: Could not find method org.osmdroid.views.MapView.getScaleX, referenced from method org.osmdroid.views.overlay.SafeDrawOverlay.draw
09-26 16:55:53.931 353-353/com.example.myfirstapp2 W/dalvikvm: VFY: unable to resolve virtual method 1476: Lorg/osmdroid/views/MapView;.getScaleX ()F
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.
我有一个为我的大学校园建立离线地图的想法(它覆盖了大约3-4英里).像新学生或客人可以导航到校园的各个街区.学生可以在当前位置看到他/她自己在地图上的标记,并且可以从预定义的地点列表中选择目的地,并且应用程序将导航他们.
我已经探索过很多像maptiles可以帮助我显示地图.但是有没有其他有效的方式来展示校园地图?我不知道我将如何导航用户(因为作为私人财产区域是Google的地图(或其他一些)API无法访问).
任何建议都会有所帮助.:)
EDITED
这是谷歌地图链接到我的地方.
我正在研究过去几天的ArcGIS,学习使用"ArcGIS for Desktop"创建"地理数据库",以便在iPhone上渲染离线地图.
但是,现在我关心的是如何导航用户.
我将欢迎任何使用任何不同方法完成它的建议/想法.
对于我们的应用程序,我目前正在将地图框与自定义地图图块表面集成(如此处所述)。使用有效的互联网连接,一切都运行良好,OfflineManager我OfflineTilePyramidRegionDefinition可以下载图块并在 mbgl-offline.db 中找到它们,但它们似乎未在应用程序中使用。据报告,离线区域已完成,但只是不显示。据我了解离线文档,下载图块后,其他一切都是“放手”。
我尝试了几个不同的来源(例如,OpenMapTiles.org),因为我们仍在建立自己的地图切片服务器的过程中。
我在这里错过了什么吗?我真的很感谢任何线索。
最好的,菲尔
更新: 这里有更多信息:
XML 布局
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
mapbox:center_latitude="51"
mapbox:center_longitude="7"
mapbox:style_url="http://demo.tileserver.org/styles/klokantech-basic.json"
mapbox:zoom="1"/>
Run Code Online (Sandbox Code Playgroud)
下载地图数据的代码:
// Set up the OfflineManager
OfflineManager offlineManager = OfflineManager.getInstance(context);
// Create a bounding box for the offline region
LatLngBounds latLngBounds = new LatLngBounds.Builder()
.include(new LatLng(6, 50))
.include(new LatLng(8, 52))
.build();
// Define the offline region
OfflineTilePyramidRegionDefinition definition = new OfflineTilePyramidRegionDefinition(
mapView.getStyleUrl(),
latLngBounds,
0,
9, // also tried other zoom levels
context.getResources().getDisplayMetrics().density); …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Leaflet 地图中显示 .mbtiles 图层(由Tippecanoe创建)。图块加载了Leaflet.TileLayer.MBTiles。到目前为止,地图上看不到任何内容,尽管 MBTiles 加载良好并且可以在浏览器的检查器控制台中识别。我猜是因为我没有使用 MapBox Studio(或类似的)对 MBTiles 进行外部样式设置,所以它们没有分配任何样式(颜色、大小等)。
是否可以在 html 中使用 CSS、JS 或其他方式设置 .mbtiles 样式?我发现 .mbtiles 通常有一个关联的 style.json 文件——是否可以编写我自己的文件并在 html 或 javascript 中调用它来实现 Leaflet?
这是我的代码的相关部分:
var map = L.map('map', {layers: [ESRIOceanBaseMap]}).setView([33.985, -120.25], 12);
var mb = L.tileLayer.mbTiles('https://raw.githubusercontent.com/evantdailey/map_testing/master/2016668FA.mbtiles', {
type: 'circle',
minZoom: 0,
maxZoom:25
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)
我希望在 CSS 中做这样的事情(似乎不起作用):
#mb {
color: black
}
Run Code Online (Sandbox Code Playgroud)
如果以上都不可能,是否还有其他方法可以为 Leaflet 设置 MBTiles 样式,而无需通过 MapBox Studio 并为每个图层分配样式?目标是以编程方式创建多个图层(每个图层包含数千个点),因此单独设置样式和导出每个图层并不理想。
我正在编写一个 Qt 应用程序,该应用程序应该在其视图之一中显示特定地理区域的地理地图,我需要能够在其上绘制各种其他图形元素。
要求是所有地图图块必须预先下载以供离线使用,因为在使用应用程序期间不会有互联网连接。
经过长时间搜索合适的库,我可以链接到我的 Qt 项目来支持我的需求(离线图块加载、在 Qt 框架中渲染和绘制地图、非 QML 仅 C++ 集成),我想到了libOsmScout可以完成这项工作。
但是,我设法从OpenMapTiles下载我所在区域的.mbtiles文件,只是为了意识到 libOsmScout 本身无法使用 .mbtiles。该库只能与.osm.pbf文件一起使用(“导入”后间接使用)。(http://libosmscout.sourceforge.net/tutorials/importing/)
我在网上进行了广泛的搜索,但所有结果都指向相反方向的转换过程,即转换为 .mbtiles。
所以我的问题是:是否可以将.mbtiles文件转换为.osm.pbf格式,以便我可以导入到 libOsmScout 兼容的内部文件集中?如果可以的话,流程是怎样的?
任何帮助或指导将不胜感激。谢谢。
所以我猜这个问题的答案是"不",但有没有办法将我用mapbox studio(https://www.mapbox.com/studio/)在线设计的地图导出到.mbtiles文件中所以我可以自己主持吗?
老实说,我愿意为此付钱(省去了我得到一个世界.pbf文件的麻烦,把它变成一个postgresql数据库真是一个痛苦,特别是像我这样的平庸电脑)
听起来好像曾经有过一种方法可以做到这一点,但截至目前看起来他们已经夺走了这种能力.我可以看到很多不同的方式来使用我创建的地图,但是一切都迫使我使用mapbox作为托管服务......似乎没有办法下载我创建的地图.