hostit-online / nova-map
Laravel Nova 地图字段
dev-master
2023-06-26 06:56 UTC
Requires
- php: >=8.1
This package is auto-updated.
Last update: 2024-09-26 09:37:36 UTC
README
此地图字段当前仅在详细视图显示
您可以使用此地图字段与三种不同类型的空间数据
-
GeoJSON 字符串属性
-
纬度和经度属性
-
纬度和经度都在单个文本字段中
-
Laravel 核心空间类型
- 点
- 线字符串
- 多边形
- 几何体
- 几何体集合
- 多点
- 多线字符串
- 多边形。要使用这些核心类型,您需要安装 grimzy/laravel-mysql-spatial。请参阅下文中的设置部分。这可能与其他数据库一起工作,但效果可能不同。
-
您可以设置地图的高度(以像素为单位)
-
默认情况下,该字段在索引和表单视图中是禁用的
-
这是一个非常早期的原型 - 请将问题提交到 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