Skip to content

其他

空间关系判断,空间数据计算

  • 涉及到空间关系的(面面相交,面线相交,点是否在面内,点是否在线上,点到线的距离等)问题,可以使用空间关系计算的插件Turf
  • 相关示例
  • 当数据量特别大时,应该在后台计算,比如GeoTools,PostGIS

前后台数据交互经纬转化

  • 有时我们需要将前台的经纬数组转化为字符串存到后台,或者从后台查出来的经纬度字符串转为经纬度数组,我们也提供了相关的工具
js
//multipolygon 用 |  进行分隔
//经度和纬度用 ,  进行分隔
//经纬度用 ;  进行分隔
//经纬度串之间用  # 进行分隔

//点 一般为  x,y
//线为  x,y;x,y;x,y;................
//多线为   x,y;x,y;x,y;................#x,y;x,y;x,y;.......#...........
//面为,其中 #后面的表示洞  x,y;x,y;x,y;................#x,y;x,y;x,y;.......#...........
//多面为  #后面的表示洞  x,y;x,y;x,y;................#x,y;x,y;x,y;.......#...........|x,y;x,y;x,y;................# x,y;x,y;x,y;.......#...........|...........

//构造多面的字符串
const lnglatStr = lnglatsArray.join("|").toString();
//经纬度字符串转为经纬度数组
var lnglatsArrayList = YY.GeometryHelper.strToLngLatArray(lnglatStr);
//四维数组
console.log(lnglatsArrayList);

//四维数组,其中最里面的应该为 YY.LngLat 对象,这里我们把它看做数组
const polylgonlnglats = multiPolygon.getLngLats();
console.log(polylgonlnglats);
//经纬度数组转为经纬度字符串
const polygonlnglatStr = YY.GeometryHelper.lngLatArrayToStr(polylgonlnglats);
console.log("str:", polygonlnglatStr);

TIP

建议空间数据最好存在空间数据库里,这里介绍的是怎样将空间数据以常规的方式存放到普通的关系数据库,可能原因:

  • 可能用户还没有使用空间数据库
  • 由于一些历史原因和兼容性不能随便切换数据库

This document is generated by vitepress and Edit by deyihu