flutter-mapbox-gl / maps

A Mapbox GL flutter package for creating custom maps
Other
1.04k stars 503 forks source link

记录我的成功安装过程,提供给有需要的人 #1285

Closed greetfish closed 1 year ago

greetfish commented 1 year ago

ubuntu

我的ubuntu版本是Ubuntu 18.04.2 LTS 2核4GB 由于我的新版的mac os安装过程中遇到了python权限问题进行不下去,所以选择了使用服ubuntu务器

安装git

apt-get update

拉取tilemill

git clone https://github.com/tilemill-project/tilemill.git

安装nvm

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

使用NVM 安装指定版本node.js

nvm install v8.15.0

sudo apt-get install gcc g++ make

cd tilemill目录后

npm install

端口号映射方式,不能正确加载贴图

外网启动 ,只有这样,才能正常加载瓷砖贴图

./index.js --server=true --listenHost=0.0.0.0 --coreUrl=your server ip:20009 --tileUrl=your server ip:20008

本地浏览器访问

http://your server ip:20009/

安装postgresql

apt-get install postgresql

安装postgis

sudo apt install postgresql-10-postgis-2.4

安装IMPOSM

安装依赖

sudo apt-get install build-essential python-dev protobuf-compiler \ libprotobuf-dev libtokyocabinet-dev python-psycopg2 libgeos-c1v5

sudo apt-get install python-pip sudo pip install imposm

安装OSM Bright

cd /title

wget https://github.com/mapbox/osm-bright/archive/refs/heads/master.zip

apt install unzip

unzip master.zip

调整PostgreSQL的访问权限

vim /etc/postgresql/10/main/pg_hba.conf

把最下面的几段配置后面设置trust

sudo /etc/init.d/postgresql restart

创建osm数据库

psql -U postgres -c "create database osm;" psql -U postgres -d osm -f /usr/share/postgresql/10/contrib/postgis-2.4/postgis.sql psql -U postgres -d osm -f /usr/share/postgresql/10/contrib/postgis-2.4/spatial_ref_sys.sql

设置osm bright

新建目录/path/to/osm-bright/shp,并进入shp目录后 wget https://osmdata.openstreetmap.de/download/simplified-land-polygons-complete-3857.zip wget https://osmdata.openstreetmap.de/download/land-polygons-split-3857.zip wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip

unzip 他们

或者进入目录~/Document/MapBox/projects/ cp /path/to/osm-bright/shp/land-polygons-split-3857.zip ~/Documents/MapBox/project/shp/land-polygons-split-3857.zip cp /path/to/osm-bright/shp/ne_10m_populated_places.zip ~/Documents/MapBox/project/shp/ne_10m_populated_places.zip /path/to/osm-bright/shp/simplified-land-polygons-complete-3857.zip ~/Documents/MapBox/project/shp/simplified-land-polygons-complete-3857.zip

或者进入目录~/Document/MapBox/projects/ cp /path/to/osm-bright/shp/land-polygons-split-3857.zip /title/osm-bright-master/shp/land-polygons-split-3857.zip cp /path/to/osm-bright/shp/ne_10m_populated_places.zip /title/osm-bright-master/shp/ne_10m_populated_places.zip cp /path/to/osm-bright/shp/simplified-land-polygons-complete-3857.zip /title/osm-bright-master/shp/simplified-land-polygons-complete-3857.zip

下载PBF地图文件

cd /title wget http://download.geofabrik.de/asia/china-latest.osm.pbf

导入地图文件到postgres, 预计需要时间比较久(2核4G 1个半小时)

imposm -U postgres -d osm -m /title/osm-bright-master/imposm-mapping.py \ --read --write --optimize --deploy-production-tables /title/china-latest.osm.pbf

安装到MAP BOX项目中

cd /title/osm-bright-master/osm-bright vim osm-bright.osm2pgsql.mml json格式有个末尾不该出现的逗号,去掉(553行)

cd /title/osm-bright-master ./make.py

运行tilemill

./index.js --server=true --listenHost=0.0.0.0 --coreUrl=your server ip:20009 --tileUrl=your server ip:20008

从运行的网页上面导出 .mbtitles格式的地图文件

使用工具将.mbtitles转换成png (-tms才能得到我需要的坐标方式的瓦片图)

python3 mbtilesToPngs.py -i path/to/.mbtiles -tms

vijin-eaf commented 4 months ago

after converting to png how to use it?

greetfish commented 4 months ago

你好,你的来信我已收到

greetfish commented 3 months ago

after converting to png how to use it?

i use flutter to make app,so i use fluppter package: https://pub.dev/packages/flutter_map