vps如何设置网站权限,中国东凤网站制作,广东建设信息网电脑版,广州网站优化外包一、数据库字段
字段类型选择(Type) 设置对象类型为#xff1a;geometry
二、前端传递的Json格式转换
前端传递围栏的各个坐标点数据如下#xff1a;
{AreaRange: [{lat: 30.123456,lng: 120.123456},{lat: 30.123456…一、数据库字段
字段类型选择(Type) 设置对象类型为geometry
二、前端传递的Json格式转换
前端传递围栏的各个坐标点数据如下
{AreaRange: [{lat: 30.123456,lng: 120.123456},{lat: 30.123456,lng: 120.654321},{lat: 30.654321,lng: 120.654321},{lat: 30.654321,lng: 120.123456}]
}后端使用Geometry类型ORM本项目使用了SqlSugar
/// summary
/// 区域围栏
/// /summary
[SugarColumn(ColumnName arearange)]
public Geometry? AreaRange { get; set; }public class MapProperty
{/// summary/// Latitude的简写表示纬度/// /summarypublic double lat { get; set; }/// summary/// Longtitude的简写表示经度/// /summarypublic double lng { get; set; }
}后端Json转Geometry ( Polygon)多边形或者线
public static Polygon ConvertToPolygon(ListMapProperty data)
{if (data null || data.Count 3){throw new ArgumentException(至少需要三个点才能创建多边形);}// 创建几何工厂GeometryFactory factory new GeometryFactory(new PrecisionModel(), 4326);// 将 ListMapProperty 转换为 ListCoordinateListCoordinate coordinates data.Select(mp new Coordinate(mp.lng, mp.lat)).ToList();// 添加第一个点以闭合多边形coordinates.Add(coordinates[0]);// 创建线性环LinearRing linearRing factory.CreateLinearRing(coordinates.ToArray());// 创建多边形Polygon polygon factory.CreatePolygon(linearRing);return polygon;
}
public static LineString ConvertToLineString(ListMapProperty data){if (data null || data.Count 2){throw new ArgumentException(至少需要两个点才能创建多段线);}// 创建几何工厂GeometryFactory factory new GeometryFactory();// 将 ListMapProperty 转换为 ListCoordinateListCoordinate coordinates data.Select(mp new Coordinate(mp.lng, mp.lat)).ToList();// 创建多段线LineString lineString factory.CreateLineString(coordinates.ToArray());return lineString;}保存入库
var area GeoJsonHelper.ConvertToPolygon(request.AreaRange);
CommunityExtEntity ext new CommunityExtEntity()
{AreaRange area,
};
await _app.Insertable(ext).ExecuteCommandAsync();