genealabs/nova-map-marker-field

此包已被废弃且不再维护。未建议替代包。

Laravel Nova字段。

资助包维护!
mikebronner

安装: 124,615

依赖者: 3

建议者: 0

安全: 0

星级: 131

关注者: 5

分支: 36

开放问题: 18

语言:Vue

0.4.4 2022-06-17 12:34 UTC

README

此包已存档,直到它可以用Laravel Nova更新。我们已经停止使用Laravel Nova,并且不再拥有它的许可。因此,我们目前无法证明在此包上进一步开发是合理的。请在此处检查类似包的可用性:https://novapackages.com

Laravel Nova地图标记字段

GitHub (pre-)release Packagist GitHub license

Map Marker Field for Laravel Nova masthead image.

支持此包

这是一个MIT许可的开源项目,其持续开发得以通过社区的支挣得以实现。如果您想支持它和我们的其他包,请考虑成为赞助商

我们感谢以下赞助商的慷慨,请花点时间了解一下

要求

  • Laravel 9.0+
  • Nova 3.9+

安装

  1. 安装包
composer require genealabs/nova-map-marker-field
  1. 发布标记图标资源(如果您指定了自己的,则此步骤不是必需的)
php artisan vendor:publish --provider="GeneaLabs\NovaMapMarkerField\Providers\Service"

实现

要创建地图标记字段,所需的所有内容只是一个表单标签,其余选项将应用默认值

use GeneaLabs\NovaMapMarkerField\MapMarker;

MapMarker::make("Location"),

坐标字段名称

默认情况下,字段将在模型上查找latitudelongitude字段。但是,如果您的模型使用不同的名称,您可以使用->latitude('lat')->longitude('long')方法自定义它们

MapMarker::make("Location")
    ->latitude('lat')
    ->longitude('long'),

默认设置

您可以指定缩放级别和初始地图中心坐标的默认设置。如果未指定,则缩放级别默认为12;坐标默认为(0, 0)。

MapMarker::make("Location")
    ->defaultZoom(8)
    ->defaultLatitude(41.823611)
    ->defaultLongitude(-71.422222),

中心圆

可选的centerCircle()方法允许在地图的中心点绘制一个圆。

MapMarker::make("Location")
    ->centerCircle($radiusInMeters, $color, $borderWidth, $backgroundOpacity),

搜索提供者

底层搜索功能由leaflet-geosearch提供。请参阅他们的文档以获取提供者配置信息。默认情况下,我们使用ESRI搜索提供者。

MapMarker::make("Location")
    ->searchProvider('google')
    ->searchProviderKey('xxxxxxxxxxxxxxxxxxxxxxxxxxx'),

您可以在地理搜索框中指定自定义搜索标签

MapMarker::make('Location')
    ->searchLabel('Enter Address');

瓦片图层

您可以使用任何与 Leaflet 兼容的瓦片提供者。请参考他们关于瓦片层URL的文档。默认情况下,我们使用OpenStreetMap提供的瓦片。

MapMarker::make("Location")
    ->tileProvider('http://{s}.somedomain.com/{foo}/{z}/{x}/{y}.png'),

在Nova自定义组件事件中重新居中

  • 从您的自定义组件中,您可以按照以下方式触发地图的重置:
    Nova.$emit("recenterMapOn", {latitude, longitude});
  • 您可以为MapMarker字段定义一个自定义事件名称。
    MapMarker::make('Location')
        ->listenToEventName('customCenterEventTriggerName');
    然后,您可以从您的自定义组件中按如下方式触发事件:
    Nova.$emit("customCenterEventTriggerName", {latitude, longitude});

使用方法

在创建或编辑时,您可以通过搜索地址或城市来获取坐标的大致区域。然后,您可以通过拖动地图来精确地放置标记——标记始终保持在中间,而您可以在其下方移动地图。

在详情页上查看地图时,地图和标记不可交互,并且没有搜索功能。然而,用户可以自由地进行缩放。

屏幕截图

创建/编辑字段

Screen Shot 2019-06-23 at 8 16 52 AM

详情字段

Screen Shot 2019-06-23 at 8 17 43 AM

索引字段

Screen Shot 2019-06-23 at 8 32 01 AM

对质量的承诺

在包开发过程中,我尽可能地采用良好的设计和开发实践,以确保该包尽可能优秀。我的包开发清单包括:

  • ✅ 使用单元测试尽可能接近100%的代码覆盖率。
  • ✅ 消除SensioLabs Insight和Scrutinizer识别出的任何问题。
  • ✅ 完全遵守PSR1、PSR2和PSR4。
  • ✅ 在README.md中包含全面的文档。
  • ✅ 提供一个符合http://keepachangelog.com中概述格式的最新CHANGELOG.md。
  • ✅ 所有代码中都没有PHPMD或PHPCS警告。

贡献

请遵守并尊重所包含的《行为准则》https://github.com/GeneaLabs/nova-map-marker-field/blob/master/CODE_OF_CONDUCT.md的各个方面。

报告问题

在报告问题时,请尽可能完整地填写包含的模板。不完整的问题可能会被忽略或关闭,如果没有足够的信息来采取行动。

提交拉取请求

请查看贡献指南https://github.com/GeneaLabs/nova-map-marker-field/blob/master/CONTRIBUTING.md。只有符合所有标准的PR才会被接受。

如果您喜欢开源软件,请为使用的存储库点赞⭐️。

我们已经将惊人的 symfony/thanks Composer 包作为开发依赖项添加。通过星标你使用的包来告知操作系统包维护者你对他们的感激之情。安装此包后,只需简单地运行 composer thanks 即可。(不必担心,由于它是开发依赖项,它不会在你的实际环境中安装。)