承接 f104/nova-map-marker-field 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

f104/nova-map-marker-field

Composer 安装命令:

composer require f104/nova-map-marker-field

包简介

A Laravel Nova field.

关键字:

README 文档

README

GitHub (pre-)release Packagist GitHub license

Map Marker Field for Laravel Nova masthead image.

Supporting This Package

This is an MIT-licensed open source project with its ongoing development made possible by the support of the community. If you'd like to support this, and our other packages, please consider becoming a sponsor.

We thank the following sponsors for their generosity, please take a moment to check them out:

Requirements

  • Laravel 8.0+
  • Nova 3.9+

Installation

  1. Install the package:
composer require genealabs/nova-map-marker-field
  1. Publish the marker icon assets (this is not necessary if you are specifying your own):
php artisan vendor:publish --provider="GeneaLabs\NovaMapMarkerField\Providers\Service"

Implementation

To create the map marker field, all that is necessary is the form label, and the remaining options will have defaults applied:

use GeneaLabs\NovaMapMarkerField\MapMarker;

MapMarker::make("Location"),

Coordinate Field Names

By default the field will look for latitude and longitude fields on the model. However, if your model uses different names, you may customize them with the ->latitude('lat') and ->longitude('long') methods:

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

Default Settings

You can specify default settings for zoom level, and initial map center coordinates. If not specified, the zoom level will default to 12; the coordinates will default to (0, 0).

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

Center Circle

The optional centerCircle() method allows the addition of a circle to be rendered at the centerpoint of the map.

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

Search Provider

The underlying search capabilities are provided by leaflet-geosearch. Please refer to their documentation for provider configuration. By default we use the ESRI search provider.

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

You can specify a custom search label in the geosearch box:

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

Tile Layer

You are free to use any tile provider that is compatible with Leaflet. Please refer to their documentation on tile layer URLs. By default we use tiles provided by OpenStreetMap:

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

Recenter On Nova Custom Component Events

  • From your custom component you can trigger the recentering of the map as follows:
    Nova.$emit("recenterMapOn", {latitude, longitude});
  • You can define a custom event name that the MapMarker field will respond to:
    MapMarker::make('Location')
        ->listenToEventName('customCenterEventTriggerName');
    You can then trigger the event from your custom component like so:
    Nova.$emit("customCenterEventTriggerName", {latitude, longitude});

Usage

When creating or editing you can search for an address or city to get the map to the general area you wish to get coordinates for. Then you can precisely position the marker by dragging the map -- the marker will always stay positioned in the middle, while you move the map under it.

When viewing the map in on the detail page, the map and marker are not interactive, and there is no search functionality. However, the user is free to zoom in and out.

Screenshots

Create / Edit Field

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

Detail Field

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

Index Field

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

Commitment to Quality

During package development I try as best as possible to embrace good design and development practices, to help ensure that this package is as good as it can be. My checklist for package development includes:

  • ✅ Achieve as close to 100% code coverage as possible using unit tests.
  • ✅ Eliminate any issues identified by SensioLabs Insight and Scrutinizer.
  • ✅ Be fully PSR1, PSR2, and PSR4 compliant.
  • ✅ Include comprehensive documentation in README.md.
  • ✅ Provide an up-to-date CHANGELOG.md which adheres to the format outlined at http://keepachangelog.com.
  • ✅ Have no PHPMD or PHPCS warnings throughout all code.

Contributing

Please observe and respect all aspects of the included Code of Conduct https://github.com/GeneaLabs/nova-map-marker-field/blob/master/CODE_OF_CONDUCT.md.

Reporting Issues

When reporting issues, please fill out the included template as completely as possible. Incomplete issues may be ignored or closed if there is not enough information included to be actionable.

Submitting Pull Requests

Please review the Contribution Guidelines https://github.com/GeneaLabs/nova-map-marker-field/blob/master/CONTRIBUTING.md. Only PRs that meet all criterium will be accepted.

If you ❤️ open-source software, give the repos you use a ⭐️.

We have included the awesome symfony/thanks composer package as a dev dependency. Let your OS package maintainers know you appreciate them by starring the packages you use. Simply run composer thanks after installing this package. (And not to worry, since it's a dev-dependency it won't be installed in your live environment.)

f104/nova-map-marker-field 适用场景与选型建议

f104/nova-map-marker-field 是一款 基于 Vue 开发的 Composer 扩展包,目前已累计 4.39k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 08 月 17 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「nova」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 f104/nova-map-marker-field 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 f104/nova-map-marker-field 我们能提供哪些服务?
定制开发 / 二次开发

基于 f104/nova-map-marker-field 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4.39k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 10
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 35
  • 开发语言: Vue

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-08-17