jonnitto/maps
Composer 安装命令:
composer require jonnitto/maps
包简介
Maps integration for Neos CMS. Stadiamaps, Protomaps, Openstreetmaps or GoogleMaps. Live preview. Multiple addresses.
README 文档
README
One package to rule them all. With this plugin you integrate one of these services into you Neos installation. This
package relies primarily on the settings in Settings.yaml. Because of this, only one type of card can be used per
installation. Every map can hold multiple marker, with configurable popup.
Javascript Event to initalize maps
If you dispatch an event with the name jonnitto-maps:init, the maps will be initalized. This is useful in when you
work with AJAX request. The event listener is attached to the window object.
If you want, for example, use it togheter with turbo
document.addEventListener('turbo:load', ({ detail }) => { // It is not the first load if (detail.timing?.visitStart) { window.dispatchEvent(new Event('jonnitto-maps:init')); } });
or with Alpine AJAX:
window.addEventListener('ajax:success', () => { window.dispatchEvent(new Event('jonnitto-maps:init')); });
Installation
You will have to make adjustments to this package in your own Settings.yaml. Because of that, it is important to add the corresponding package to the composer from your theme package.
composer require jonnitto/maps --no-update
The --no-update command prevent the automatic update of the dependencies. After the package was added to your theme composer.json, go back to the root of the Neos installation and run composer update. Et voilà! Your desired package is now installed correctly.
What can be configured on the map
On a map element you could change the aspect ratio with aspectRatio.
Please use the official CSS syntax for that
If you want to make it configurable, you can add your own property and let the user decide.
What can be altered on the address element
Beside the given properties in the inspector, you can also alter enableRouteLink. This enables a link to google maps
for routing. With renderContentAfterAddress (default true) you can choose if the text is shown before or after the
address.
The main configuration
If you read the Settings.yaml carefully, you should understand how to configure the plugin.
Jonnitto: Maps: # Import the Javascript with type="module" or not # Modules are only supported by modern browsers useJavaScriptModules: true # Can be MapLibre or Leaflet. No effect for GoogleMaps mapLibrary: 'Leaflet' # Can be Stadiamaps, GoogleMaps, OpenStreetMap or Protomaps mapService: 'OpenStreetMap' aspectRatio: '16 / 9' # Please use the official CSS syntax: https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio pinColor: '#009fe3' # Enable a link to Google Maps for Routes enableRouteLink: false # Can be default/null (no effect), grayscale, dark, black or invert effect: null # If you want enable dynamic dark/light mode based on the media or class # You have to set effect to an object # effect: # light: default # dark: dark # # media or class (class uses the CSS class 'dark' on the HTML element) # basedOn: media GoogleMaps: # If you want to use Google Maps, you have to set the api key apiKey: null # If the user point between marker, the route gets shown enableDirections: false mapOptions: # zoomControl: true # mapTypeControl: true # scaleControl: true # streetViewControl: true # rotateControl: true # fullscreenControl: true zoom: 14 # https://developers.google.com/maps/documentation/get-map-id mapId: null # https://developers.google.com/maps/documentation/javascript/maptypes mapTypeId: null MapLibre: setRTLTextPlugin: false mapOptions: scrollZoom: false zoom: 14 Leaflet: mapOptions: scrollWheelZoom: false zoom: 14 Protomaps: # To enable Protomaps, you have to set the url or the API Key apiKey: null url: Leaflet: 'https://api.protomaps.com/tiles/v3/{z}/{x}/{y}.mvt?key={{API_KEY}}' MapLibre: 'https://api.protomaps.com/tiles/v4.json?key={{API_KEY}}' glyphs: '/_Resources/Static/Packages/Jonnitto.Maps/Protomaps/Fonts/{fontstack}/{range}.pbf' # {{STYLE}} get replaced with the style setting sprite: '/_Resources/Static/Packages/Jonnitto.Maps/Protomaps/Sprites/{{STYLE}}' attribution: '<a href="https://github.com/protomaps/basemaps" target="_blank" rel="noopener noreferrer nofollow">Protomaps</a> © <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener noreferrer nofollow">OpenStreetMap</a>' # Can be light, dark, grayscale, white or black style: 'light' # If you want enable dynamic dark/light mode based on the media or class # You have to set style to an object # style: # light: light # dark: dark # # media or class (class uses the CSS class 'dark' on the HTML element) # basedOn: media # If you want a dark mode for openstreetmap, you can use the effect setting OpenStreetMap: maxZoom: 20 attribution: '© <a href="https://openmaptiles.org/" target="_blank" rel="noopener noreferrer nofollow">OpenMapTiles</a> © <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener noreferrer nofollow">OpenStreetMap</a>' style: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png' Stadiamaps: attribution: '© <a href="https://stadiamaps.com/" target="_blank" rel="noopener noreferrer nofollow">Stadia Maps</a> © <a href="https://openmaptiles.org/" target="_blank" rel="noopener noreferrer nofollow">OpenMapTiles</a> © <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener noreferrer nofollow">OpenStreetMap</a>' maxZoom: 20 styleTemplate: # {{STYLE}} get replaced with the style setting Leaflet: 'https://tiles.stadiamaps.com/tiles/{{STYLE}}/{z}/{x}/{y}{r}.png' MapLibre: 'https://tiles.stadiamaps.com/styles/{{STYLE}}.json' # Can be alidade_smooth, alidade_smooth_dark, osm_bright or outdoors style: 'osm_bright' # If you want enable dynamic dark/light mode based on the media or class # You have to set style to an object # style: # light: alidade_smooth # dark: alidade_smooth_dark # # media or class (class uses the CSS class 'dark' on the HTML element) # basedOn: media
jonnitto/maps 适用场景与选型建议
jonnitto/maps 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 3.95k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2023 年 11 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「flow」 「map」 「Neos」 「googlemaps」 「openstreetmaps」 「protomaps」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jonnitto/maps 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jonnitto/maps 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jonnitto/maps 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
An improved history backend module for Neos
Maps in minutes. Powered by the Google Maps API.
Yii2 map input widget. Allows you to select geographcal coordinates via a human-friendly inteface.
Put images nicley in a row
Create link to static resources with cache-breaking segment based on md5 of the file
Allows changing uploaded asset filenames in Neos CMS
统计信息
- 总下载量: 3.95k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 25
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2023-11-08