davidpiesse/nova-map

Laravel Nova的地图字段

安装次数: 214,522

依赖: 0

建议者: 0

安全性: 0

星标: 114

关注者: 9

分支: 29

开放问题: 5

语言:Vue

0.0.9 2022-06-04 09:30 UTC

This package is auto-updated.

Last update: 2024-09-04 14:19:06 UTC


README

Total Downloads Latest Stable Version

地图字段

此地图字段目前仅在详情视图中显示

Gif!

您可以使用此地图字段与三种不同的空间数据类型

  • GeoJSON字符串属性

  • 纬度和经度属性

  • 纬度和经度都在一个文本字段中

  • 核心Laravel空间类型

    • 线字符串
    • 多边形
    • 几何体
    • 几何体集合
    • 多点
    • 多线字符串
    • 多边形。要使用这些核心类型,您需要安装grimzy/laravel-mysql-spatial。有关设置方法的说明,请参阅下面的章节。这也可以与其它数据库一起工作,但效果可能因数据库而异。
  • 您可以为地图设置高度(单位:px)

  • 默认情况下,该字段在索引和表单视图中被禁用

  • 这是一个非常初步的工作版本 - 请向GitHub提交问题

空间类型

为了指定传递给该字段的哪种类型的空间数据,您必须设置spatialType(),例如

    ->spatialType('Point')

以下是有效的空间类型

  • 经纬度
  • 经纬度字段(单个字段)
  • GeoJSON
  • 线字符串
  • 多边形
  • 几何体
  • 几何体集合
  • 多点
  • 多线字符串
  • 多边形

示例

Map::make('Some Point Field', 'point_field_name')
    ->spatialType('Point'),

多边形

Map::make('Some Polygon Field', 'polygon_field_name')
    ->spatialType('Polygon'),

GeoJSON

Map::make('Some GeoJSON Field')
    ->spatialType('GeoJSON')
    ->geojson('geojson_field_name'),

纬度和经度(分开的字段)

Map::make('Some Point Location')
    ->spatialType('LatLon')
    ->latitude('latitude_field_name')
    ->longitude('longitude_field_name'),

纬度和经度(单个字段)

Map::make('Some Point Location', 'coordinate_field_name')
    ->spatialType('LatLonField'),

设置高度

Map::make('Some Point Field', 'point_field_name')
    ->spatialType('Point')
    ->height('300px'),

设置Laravel空间类型

您需要将grimzy/laravel-mysql-spatial安装到主应用程序中

composer require grimzy/laravel-mysql-spatial

将SpatialTrait添加到模型中

use SpatialTrait;

然后您还需要设置模型中设置的任何空间字段

protected $spatialFields = [
    'geo_point',
    'geo_linestring',
    ...
];

现在,您的模型已准备好处理Nova的空间数据

未来开发

  • 所有空间类型的编辑功能
  • 在地图上查看地址
  • 从访问核心空间类型中移除对grimzy包的依赖
  • 允许使用所有数据库空间字段
  • 进一步自定义地图
    • Tailwind高度类
    • 自定义几何体样式
      • 标记图标
      • 颜色、厚度、不透明度
    • 基础地图
      • 街道
      • 地形
      • 卫星
    • 导航工具(指南针、放大/缩小)
  • 替代地图提供商
    • 谷歌地图
    • Mapbox
    • OpenLayers