jeromegillard / map
在Flarum中显示地图。
v0.1.9
2023-12-27 07:44 UTC
Requires
- flarum/bbcode: ^1.8.0
- flarum/core: ^1.8.3
- fof/upload: ^1.4.7
Requires (Dev)
- flarum/testing: ^1.0.0
This package is auto-updated.
Last update: 2024-09-27 10:38:08 UTC
README
这是一个 Flarum 扩展。以以下方式在Flarum中显示地图:
- 在帖子中插入BBCode
- 上传
.gpx文件以在地图上显示并生成下载链接 - 上传
GeoJSON文件 (.geojson或.json) 以在地图上显示并生成下载链接
它将插入此BBCode
[map provider=osm style=street zoom=13 title='Marker title' desc='Marker pop-up content. Leave title and desc both empty to hide the marker.']WHERE[/map]
WHERE 的值可以是任何位置
Nonceveux, Liège, Belgium作为纯文本地点名称。50.45626367636966, 5.744007900692774作为坐标来标记精确的位置。
您还可以通过在BBCode中更改 zoom 属性来更改缩放级别
# Zoom=13 can fit my village
[map provider=osm style=street zoom=13]Nonceveux[/map]
# Zoom=8 can fit my country
[map provider=osm style=street zoom=8]Belgium[/map]
zoom 的有效值介于 0(世界)和 18(房屋)之间。
如何自定义地图
上面的帖子是这样写的
# Mapbox satelite streets (need to register at MapBox.com to get a free API key) :
[map provider=mapbox style=mapbox/satellite-streets-v11 zoom=15]Nonceveux, Liège, Belgium[/map]
# GPX example:
[upl-file uuid=e89405b4-7c99-4af6-9fb3-8bd80df9ea64 size=2kB url=https:///assets/files/2022-10-31/1667250318-401743-gpxexample.gpx]gpxexample.gpx[/upl-file]
# GeoJSON example:
[upl-file uuid=022d8589-8c9c-4e63-b0ad-1942b5a4b480 size=133kB url=https:///assets/files/2022-10-11/1665509211-565647-trail-center-ambleve.geojson]trail-center-ambleve.geojson[/upl-file]
支持的瓦片层
免费,无需注册:OpenStreetMap。
MapTiler
免费,需要在 https://www.maptiler.com/ 获取API密钥
MapBox
免费,需要在 https://www.mapbox.com/ 获取API密钥
ThunderForest
免费,需要在 https://www.thunderforest.com/ 获取API密钥
安装
Composer
使用Composer安装
composer require jeromegillard/map:"*"
配置扩展
- 启用
FoF Uploads扩展。 - 启用
Map扩展。 - 配置
FoF Uploads以添加新的GPX模板
更新
composer update jeromegillard/map:"*"
php flarum migrate
php flarum cache:clear
进一步了解
GeoJSON
FeatureCollection 可以显示。
例如,要生成 assets/GeoJSON.example.json 的GeoJSON文件以查看 Amblève Trail Center 的所有小径,请按照以下步骤操作
# Go to https://overpass-turbo.eu/
# Input that query:
[out:json][timeout:25];
(
relation(13959062);>>;
)->.a;
rel.a;
out body;
>;
out skel qt;
# Click export, as GeoJSON
开发
我已经准备了一个 docker-compose.yml 文件,以轻松启动并运行以开发此Flarum扩展。
准备环境
- 创建
flarum-dev.env.local文件。附近有示例。 - 启动容器:
docker compose up -d - 进入容器:
docker exec -it -w /flarum/app flarum-dev /bin/sh - 允许本地包源:
composer config repositories.0 path "packages/*" - 安装扩展:
composer require jeromegillard/map *@dev - 等待容器启动。它可能会长时间停留在最后的日志 "[INFO] 设置文件夹权限",请耐心等待。
- 当日志显示 "[INFO] 启动脚本结束。论坛开始启动。" 时,您可以通过
https://浏览。 - 要重新构建前端,请在外部容器中进入
js文件夹,然后执行npm install,接着执行npm run dev(您需要在您的计算机上安装 npm)。



