在Flarum中显示地图。

安装: 311

依赖项: 0

建议者: 0

安全: 0

星标: 4

关注者: 1

分支: 2

开放问题: 5

语言:JavaScript

类型:flarum-extension

v0.1.9 2023-12-27 07:44 UTC

README

MIT license Latest Stable Version Total Downloads

这是一个 Flarum 扩展。以以下方式在Flarum中显示地图:

  • 在帖子中插入BBCode
  • 上传 .gpx 文件以在地图上显示并生成下载链接
  • 上传 GeoJSON 文件 (.geojson.json) 以在地图上显示并生成下载链接

Snaphost Snaphost

要在帖子中包含地图,请在编辑栏中点击图标:帖子图标

它将插入此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:"*"

配置扩展

  1. 启用 FoF Uploads 扩展。
  2. 启用 Map 扩展。
  3. 配置 FoF Uploads 以添加新的GPX模板
  • 编写 ^application\/.*(gpx|json|xml|geojson|geo.json) MIME类型上传适配器映射。
  • 选择 Map 作为模板。
  • 点击 |+| 按钮添加映射 设置 FoF 上传 MIME 类型
  1. 然后将 gpx,json,geojson 扩展添加到此列表中:设置 FoF 上传 MIME 类型
  2. ⚠️ 保存更改(屏幕底部)
  3. 配置 Map 扩展(可选)。

更新

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扩展。

准备环境

  1. 创建 flarum-dev.env.local 文件。附近有示例。
  2. 启动容器: docker compose up -d
  3. 进入容器: docker exec -it -w /flarum/app flarum-dev /bin/sh
  4. 允许本地包源: composer config repositories.0 path "packages/*"
  5. 安装扩展:composer require jeromegillard/map *@dev
  6. 等待容器启动。它可能会长时间停留在最后的日志 "[INFO] 设置文件夹权限",请耐心等待。
  7. 当日志显示 "[INFO] 启动脚本结束。论坛开始启动。" 时,您可以通过 https:// 浏览。
  8. 要重新构建前端,请在外部容器中进入 js 文件夹,然后执行 npm install,接着执行 npm run dev(您需要在您的计算机上安装 npm)。

链接