精华内容
下载资源
问答
  • 想在GeoServer中直接发布松散型的瓦片是不支持的,需要使用...1.将已有的天地图瓦片存入SQLite数据库并取名后缀为mbtiles。 2.将mbtiles文件使用Geoserver REST API发布到GeoServer。实验环境: VS2010 GeoServe

    想在GeoServer中直接发布松散型的瓦片是不支持的,需要使用GeoServer的mbtiles扩展。先将瓦片存储到SQLite数据库中,再将数据库发布,中间进行了一个转折。

    实现思路:
    1.将已有的天地图瓦片存入SQLite数据库并取名后缀为mbtiles。
    2.将mbtiles文件使用Geoserver REST API发布到GeoServer。

    实验环境:
    VS2010
    GeoServer

    所需配置:
    GeoServer wps,mbtiles扩展(先装wps,才能再装上mbtiles否则会出错)
    Python2.7
    gsconfig-master

    环境安装:
    默认已安装GeoServer和Python2.7
    首先是GeoServer的wps和mbtiles插件,具体可参考以下博客:
    GeoServer安装mbtiles扩展

    再就是GeoServer REST的安装,这里使用的是Python版本,下载地址可去github上找,这里贴出地址:
    gsconfig-master下载地址
    里面有安装方式,因为本人没接触过Python所以安装的时候确实很费脑筋。。。
    这里我先下载,然后打开。
    这里写图片描述
    在这里shift+鼠标右键,“在此处打开命令窗口”。
    在cmd中输入python setup.py develop,按下回车等待安装。安装完成后会在你的Python安装文件夹下找到一个名为geoserver的文件夹。

    打开geoserver文件夹下的store.py在大概152行处:
    self.dirty.update(name = name, enabled = True, type = “Tiff”,
    改为self.dirty.update(name = name, enabled = True, type = “MBTiles
    这里的type要更改为符合你发布的类型,如果是发布tif文件则不用更改。

    打开geoserver文件夹下的catalog.py在大概329行处,增加以下代码:

         # start
        def create_coveragestore3(self, name, data_url, workspace=None, overwrite=False):
            if not overwrite:
                try:
                    store = self.get_store(name, workspace)
                    msg = "There is already a store named " + name
                    if workspace:
                        msg += " in " + str(workspace)
                    raise ConflictingDataError(msg)
                except FailedRequestError:
                    # we don't really expect that every layer name will be taken
                    pass
    
            if workspace is None:
                workspace = self.get_default_workspace()
            headers = {
                "Content-type": "text/plain",
                "Accept": "application/xml"
            }
    
            ext = "mbtiles"
    
            cs_url = url(self.service_url,
                        ["workspaces", workspace.name, "coveragestores", name, "external." + ext],
                        {"configure": "first", "coverageName": name})
    
            headers, response = self.http.request(cs_url, "PUT", data_url, headers)
            self._cache.clear()
            if headers.status != 201:
                raise UploadError(response)
        # end

    参考博客:http://blog.csdn.net/theonegis/article/details/45950785

    C++中需要进行相关的配置,主要是C++操作SQLite数据库,在另一篇文章中已经讲过了。有需要的请移步:C++操作SQLite以及配置
    到这里配置完成。

    直接修改运行以下Python代码即可实现发布:

    from geoserver.catalog import Catalog
    
    geourl = "http://localhost:8080/geoserver/rest"  # the url of geoserver
    geocat = Catalog(geourl)  # create a Catalog object
    
    store_name = "mbtilestest" #在geoserver中显示发布的名称
    data_url = "file:D:/test.mbtiles"  #mbtiles文件所在的位置
    geostore = geocat.create_coveragestore3(store_name, data_url) #实现发布
    

    如果想在C++中实现发布,我的思路如下:
    1.读取指定瓦片路径下的所有瓦片名称。
    2.将这些瓦片,及瓦片属性存储到SQLite数据库中。
    3.调用Python 实现发布。

    注:本人在这里没有找到很好的C++调用Python,因为涉及到参数的传递,没有找到想要的方法,所以采取了一种投机取巧的方式。
    将上面发布的代码以文件流的形式输出到文本中,然后调用
    string run=”python “+filename;
    system(run.c_str());
    直接系统执行python文件,完成发布。

    展开全文
  • 想在GeoServer中直接发布松散型的瓦片是不支持的,需要...将已有的天地图瓦片存入SQLite数据库并取名后缀为mbtiles。2.将mbtiles文件使用Geoserver REST API发布到GeoServer。实验环境:VS2010GeoServer所需配置:G...

    想在GeoServer中直接发布松散型的瓦片是不支持的,需要使用GeoServer的mbtiles扩展。先将瓦片存储到SQLite数据库中,再将数据库发布,中间进行了一个转折。

    实现思路:

    1.将已有的天地图瓦片存入SQLite数据库并取名后缀为mbtiles。

    2.将mbtiles文件使用Geoserver REST API发布到GeoServer。

    实验环境:

    VS2010

    GeoServer

    所需配置:

    GeoServer wps,mbtiles扩展(先装wps,才能再装上mbtiles否则会出错)

    Python2.7

    gsconfig-master

    环境安装:

    默认已安装GeoServer和Python2.7

    首先是GeoServer的wps和mbtiles插件,具体可参考以下博客:

    GeoServer安装mbtiles扩展

    再就是GeoServer REST的安装,这里使用的是Python版本,下载地址可去github上找,这里贴出地址:

    gsconfig-master下载地址

    里面有安装方式,因为本人没接触过Python所以安装的时候确实很费脑筋。。。

    这里我先下载,然后打开。

    SouthEast

    在这里shift+鼠标右键,“在此处打开命令窗口”。

    在cmd中输入python setup.py develop,按下回车等待安装。安装完成后会在你的Python安装文件夹下找到一个名为geoserver的文件夹。

    打开geoserver文件夹下的store.py在大概152行处:

    self.dirty.update(name = name, enabled = True, type = “Tiff”,

    改为self.dirty.update(name = name, enabled = True, type = “MBTiles”

    这里的type要更改为符合你发布的类型,如果是发布tif文件则不用更改。

    打开geoserver文件夹下的catalog.py在大概329行处,增加以下代码:

    # start

    def create_coveragestore3(self, name, data_url, workspace=None, overwrite=False):

    if not overwrite:

    try:

    store = self.get_store(name, workspace)

    msg = "There is already a store named " + name

    if workspace:

    msg += " in " + str(workspace)

    raise ConflictingDataError(msg)

    except FailedRequestError:

    # we don't really expect that every layer name will be taken

    pass

    if workspace is None:

    workspace = self.get_default_workspace()

    headers = {

    "Content-type": "text/plain",

    "Accept": "application/xml"

    }

    ext = "mbtiles"

    cs_url = url(self.service_url,

    ["workspaces", workspace.name, "coveragestores", name, "external." + ext],

    {"configure": "first", "coverageName": name})

    headers, response = self.http.request(cs_url, "PUT", data_url, headers)

    self._cache.clear()

    if headers.status != 201:

    raise UploadError(response)

    # end

    C++中需要进行相关的配置,主要是C++操作SQLite数据库,在另一篇文章中已经讲过了。有需要的请移步:C++操作SQLite以及配置

    到这里配置完成。

    直接修改运行以下Python代码即可实现发布:

    from geoserver.catalog import Catalog

    geourl = "http://localhost:8080/geoserver/rest" # the url of geoserver

    geocat = Catalog(geourl) # create a Catalog object

    store_name = "mbtilestest" #在geoserver中显示发布的名称

    data_url = "file:D:/test.mbtiles" #mbtiles文件所在的位置

    geostore = geocat.create_coveragestore3(store_name, data_url) #实现发布

    如果想在C++中实现发布,我的思路如下:

    1.读取指定瓦片路径下的所有瓦片名称。

    2.将这些瓦片,及瓦片属性存储到SQLite数据库中。

    3.调用Python 实现发布。

    注:本人在这里没有找到很好的C++调用Python,因为涉及到参数的传递,没有找到想要的方法,所以采取了一种投机取巧的方式。

    将上面发布的代码以文件流的形式输出到文本中,然后调用

    string run=”python “+filename;

    system(run.c_str());

    直接系统执行python文件,完成发布。

    转载自:https://blog.csdn.net/qq_21231159/article/details/78294435

    展开全文
  • 本例中使用离线瓦片MBTiles通过Bigemap下载器下载获取,如下图,每个层级瓦片数据存储在一个MBTiles文件中 Geoserver默认是不支持MBTilers数据的,不过Geoserver提供了相应的扩展插件,官网下载扩展包geoserver-...

    MBTiles 是一种地图瓦片存储的数据规范,利用SQLite数据库来存储,使得数以百万的瓦片数据存储在一个文件中

    本例中使用离线瓦片MBTiles通过Bigemap下载器下载获取,如下图,每个层级瓦片数据存储在一个MBTiles文件中
    在这里插入图片描述
    Geoserver默认是不支持MBTilers数据的,不过Geoserver提供了相应的扩展插件,官网下载扩展包geoserver-2.15-SNAPSHOT-mbtiles-plugin.zip
    在安装GeoServer MBTiles之前,请确保已为GeoServer实例安装相应的WPS扩展,如果没有安装,则需先下载geoserver-2.15.0-wps-plugin.zip

    将下载jar包拷贝至Geoserver安装路径\webapps\geoserver\WEB-INF\lib文件夹中

    重启服务,在Geoserver数据存储的栅格数据源中新增MBTiles格式
    在这里插入图片描述
    配置成功后,即可以MBTiles为数据源进行服务发布,发布步骤不再赘述。

    展开全文
  • 三、osmdroid离线地图瓦片使用

    千次阅读 2017-10-20 22:10:25
    osmdroid离线地图瓦片使用本文档定义了在没有网络连接时使用osmdroid。支持的离线数据格式osmdroid支持多种不同类型的离线缓存瓦片。 sqlite数据库(osmdroid推荐) osmdroid ZIP MBTiles FEMF GeoPackage(开发中) ...

    osmdroid离线地图瓦片使用

    本文档定义了在没有网络连接时使用osmdroid。

    支持的离线数据格式

    osmdroid支持多种不同类型的离线缓存瓦片。

    • sqlite数据库(osmdroid推荐)
    • osmdroid ZIP
    • MBTiles
    • FEMF
    • GeoPackage(开发中)

    创建离线缓存瓦片

    你有多种不同的选择。

    OSM Map Tile Packager ( OSM地图瓦片打包器)

    osmdroid提供了OSM Map Tile Packager,用于下载并存储瓦片以供离线使用。详见readme.md

    Mobile Atlas Creator (MOBAC,移动地图创建器)

    MOBAC是最早的用于支持大量地地图源输入并输出多种数据格式的工具,而且是开源的。

    通常的流程:

    1. 创建新的、osmd所支持类型的atlas
    2. 选择地图源
    3. 选择一个你想要的区域及你要求的缩放等级
    4. 点击“Add Selection”
    5. 点击“Create Atlas”
    6. 一旦完成,复制atlas文件(.sqlite .zip等)到你的运行设备的/sdcard/osmdroid/目录下
    7. 告诉你的osmdroid不要使用网络连接并设置该地图挖填源

    Maperitive.net

    Maperitive支持从OSM数据API生成瓦片图像,并作为MOBAC替换物(已经被openstreetmap.org屏蔽)。

    在设备中使用osmdroid的Cache Manager(> version 5.2 )

    缓存管理者提供了对已下载的瓦片缓存的程序化连接。也可以用于穿件瓦片缓存。这里有两个关键点:

    • cache of downloaded tiles 是osmdroid从在线瓦片资源下载的已过期的瓦片缓存。默认的过期是指在线瓦片资源离线两周以上。Cache大小受限于使用者设备存储空间的允许。这两个设置都可以通过OpenStreetMapTileProvideConstants(版本 < 5.6,5.6及更新的版本使用Configuration.getInstance()结构)来变更和重写。
    • Tile Archives 是永久性存储,从来不会过期。这适合离线使用者的需求,但您必须注意在线瓦片源使用权限。许多在线瓦片源禁止创建永久性的瓦片存储。请仔细查看使用者权限。

    Cache Manager可以执行一系列任务:

    • 下载限定范围和zoom水平的所有瓦片
    • 下载横穿点集的和确定zoom水平的所有瓦片
    • 清除一定范围、zoom等级、瓦片源的所有瓦片
    • 清除一定点集范围的所有瓦片

    Cache Manager实例

    实例应用源

    关于瓦片源名称的重点

    当下载地图源使用MOBAC和使用下面两种格式中的一种

    • osmdroid SQLite
    • osmdroid ZIP

    在两种情况中,地图源名称被编码为database或zip文件格式,并被唯一保存(每个缓存多于一个瓦片源)。因此你在请求离线瓦片时告诉你的osmdroid瓦片源的名称。

    @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        map = (MapView) findViewById(R.id.map);
        map.setTileSource(new XYTileSource("YOUR MAP SOURCE", 0, 18, 256, ".jpg", new String[] {}));
        //....
        map.setUseDataConnection(false); //optional, but a good way to prevent loading from the network and test your zip loading. 
        IMapController mapController = map.getController();
        mapController.setZoom(_A ZOOM LEVEL YOU HAVE IN YOUR ZIP_);
        GeoPoint startPoint = new GeoPoint(_POSITION SOMEWHERE INSIDE YOUR MAP_);
        mapController.setCenter(startPoint);
    }
    

    Gotchas

    MOBAC对一次性下载的瓦片数有限制,这可以通过修改源码来改变。

    当瓦片特别多时,MOBAC可能占用太多的内存。至少在V1.8到至少V1.9.x,算法导致内存中会尽量的缓存数据,知道占满JVM ceiling,然后快速插入数据库。虽然这使数据尽可能快的插入数据库,但也可能导致稳定性的问题。

    OSMBonusPack

    OSMBonusPack是osmdroid的一个插件型android library,能够用于下载和缓存地图瓦片。详见Cache Manager

    展开全文
  • LeafLet离线地图下载,包含mysql数据库,SqLite数据库瓦片文件下载,功能多,实用性强。
  • 2、下载离线地图数据(金字塔瓦片数据) 3、下载离线地图地形数据库(实现地表高低起伏) 4、添加离线地图数据到本地服务器(含3D) 5、离线地图二次开发接口(离线地图API) 6、离线地...
  • 离线地图_openstreetmap_postgresql_瓦片 离线地图_openstreetmap_postgresql_postgis_mapnik_osm2pgsql_osm数据 写于20150414 关于软件地址 事先说明这其实就是我全部放到百度网盘空间里了。 所以万一一不小心我...
  • google地图V3离线版.zip

    2020-08-07 11:20:28
    可用于学习谷歌地图V3开发、或改造原谷歌V3项目(在线改离线)。 注:如vs下运行出错,就使用32位的sqlite运行库(bin目录下,手动改文件名) 再注:21年元旦起,谷歌服务器已全面被禁止访问,瓦片下载只能使用第三方工具
  • 2、下载离线地图数据(金字塔瓦片数据) 3、下载离线地图地形数据库(实现地表高低起伏) 4、添加离线地图数据到本地服务器(含3D) 5、离线地图二次开发接口(离线地图API) 6、离线地...
  • Web GIS 离线地图

    2019-09-25 21:57:23
    Web GIS 离线地图 1,基于瓦片离线地图下载 ...阿凡卢提供的地图下载软件,对于导出的瓦片图片的目录是基于ArcGIS切片目录,我编写了将导出到Mysql数据库中的瓦片数据导出为{type}/{z}/{x}/{y}.png 格式。...
  • 说明: 1.无偏移坐标定位; 2.可以自由搭配点线面配置信息(颜色、粗细、透明度等); 3.地图级别自定义;...7.可以直接局域网使用,完全脱离外网(只需下载指定瓦片拷贝到指定目录即可,地图下载器下载瓦片
  • MBTiles 离线地图的生成和使用

    千次阅读 2018-10-29 17:38:35
    mbtiles 为离线地图,形式为瓦片形式,用sqlite数据库保存,数据库内容符合mbtiles存储规范。 地图存储有精确的经纬度信息。 2、MBTiles 地图使用。 所有生成的mbtiles文件都可以用Map Tiler 软件打开。 ...
  • 目录 1.Desktop添加Arcgis服务器并注册文件夹和数据库 2.在线服务发布 2.1 地图服务发布 2.2 瓦片服务发布 2.3 要素服务发布 ...注:在线服务发布和离线瓦片数据包操作针对ArcGIS 10.2及以上版本,ArcG.
  • 地图制作者面对一个数以百万计的地图瓦片残酷的现实:大多数文件系统和传输协议对处理数以百万计的图像不是很有效,在磁盘为FAT32格式中,一个文件夹中最多含有65536个文件,HFS最多能列出32,767个文件,EXT3超过...
  • MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android、IPhone等智能手机的离线地图存储。详情请参考:MBTiles移动存储...
  • CentOS7地图数据:OSM地图瓦片渲染:Mapnik + CartoCSSWMS服务:MapProxy TileStacheWEB前端:OpenLayers地图底图样式编辑:iD第一步:第二步:PostGIS的创建和初始化我们选Postgresql作为我们的GIS数据库,...
  • MBTiles是由MAPBOX公司所主持的一个开源标准,专门用于存储瓦片地图,它实际上就是一个SQLite数据库文件,将瓦片地图分层级存储于其中。 Geoserver通过扩展插件,来发布mbtiles的切片数据库,需要安装wps plugin,...
  • 1. 基本说明本项目实现了离线展示百度、谷歌、高德、腾讯地图。... 地图瓦片下载工具及配置工具下载链接: http://pan.baidu.com/s/1qYoHj4K 密码: ehgh 工具使用方法:数据库配置打开工具目录中的 MapDownloader...
  • MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android、IPhone等智能手机的离线地图存储。详情请参考:MBTiles移动存储...
  • 本项目实现了离线展示百度、谷歌、高德、腾讯地图。主要功能如下: 实现了地图瓦片图下载、存储。目前支持存储至MySQL Node.js服务调用MySQL中的瓦片图 Leaflet展示地图 展示效果如下: 2. 地图瓦片下载...
  • Android上的一个离线地图开源项目

    千次阅读 2011-04-06 22:20:00
    项目名:BigPlanetTracks 项目地址:http://code.google.com/p/big-planet-tracks/<br />源码检出:tortoise...   核心:  项目将地图以“瓦片”的形式存储在SQLite数据库中,如果想读取出
  • 离线地图_openstreetmap_postgresql_postgis_mapnik_osm2pgsql_osm数据 写于20150414 关于软件地址 事先说明这其实就是我全部放到百度网盘空间里了。 所以万一一不小心我手抖删了,请mail我。 haibinzhagncn@qq....
  • MBTiles离线包生成和使用

    万次阅读 2017-05-27 15:39:00
    MBTiles是指由MapBox制定的一种将瓦片地图数据存储到SQLite数据库中并可快速使用,管理和分享的规范,而MBTiles离线包是用SuperMap iServer、IExpress生成符合MBTiles规范的地图瓦片。下面主要介绍MBTiles数据的存储...
  • 离线地图_openstreetmap_postgresql_postgis_mapnik_osm2pgsql_osm数据(等软件)切~ 写于20150414 关于软件地址 事先说明这其实就是我全部放到百度网盘空间里了。 所以万一一不小心我手抖删了,请mail我。 ...
  • 2、下载离线地图数据(金字塔瓦片数据) 3、下载离线地图地形数据库(实现地表高低起伏) 4、添加离线地图数据到本地服务器(含3D) 5、离线地图二次开发接口(离线地图API) 6、离线地...
  • 2、下载离线地图数据(金字塔瓦片数据) 3、下载离线地图地形数据库(实现地表高低起伏) 4、添加离线地图数据到本地服务器(含3D) 5、离线地图二次开发接口(离线地图API) 6、离线地...
  • 2、下载离线地图数据(金字塔瓦片数据) 3、下载离线地图地形数据库(实现地表高低起伏) 4、添加离线地图数据到本地服务器(含3D) 5、离线地图二次开发接口(离线地图API) 6、离线地...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

地图离线瓦片数据库