数据库应该怎么建表保存空间数据[发重了,请版主删除]
本帖最后由 bhbhxy 于 2022-6-6 14:09 编辑现在有一个场景,有几个经纬度
Point(113.559587,34.633359)
Point(114.019519,34.196901)
Point(114.663425,34.141466)
组成一条线,名称叫线段1,依此类推还有线段2、3、4。。。
目前表结构是这样:
IDLngLatLineName
1113.55958734.633359线段1
2114.01951934.196901线段1
3114.66342534.141466线段1
请问上面这种表结构合理吗,还是像这样的合适:
ID Coordinates LineName
1 113.559587,34.633359,114.019519,34.196901,114.663425,34.141466 线段1
或者上面两种都不对,应该采取别的方式建表?
另外还有个问题,如果两条线段有公共的部分,如何提取这一部分呢,请大佬指导 楼主可以去搜索地理信息系统相关的数据库设计 很简单啊
id x坐标 y坐标 线段 线段id
1 113.3 33.3 线段1 1
2 113.3 33.3 线段1 2
3 113.3 33.3 线段1 3
4 113.3 33.3 线段2 1
5 113.3 33.3 线段2 2
6 113.3 33.3 线段2 3 xiaoyxf 发表于 2022-6-6 14:09
很简单啊
id x坐标 y坐标 线段 线段id
1 113.3 33.3 线段1 1
怎么找两条线段的公共组成部分呢 metaxman 发表于 2022-6-6 14:06
楼主可以去搜索地理信息系统相关的数据库设计
百度bing好久了,都没找到具体的资料 bhbhxy 发表于 2022-6-6 14:10
怎么找两条线段的公共组成部分呢
指的是两条线段重叠的坐标点还是? 本帖最后由 很快再相见123 于 2022-6-6 14:22 编辑
建议使用PostgreSQL/PostGIS数据库,借助内置的函数,插入Geometry类型数据
`INSERT INTO haz_che_dis_bear_gas_station ( "id", "name", "address", "location","category" ) VALUES (1000,'name字段','address字段',st_geomfromewkt ('SRID=4326;Point(116.39946968797244 33.95045007394849)'),'table_name' );`
```
获取两个几何对象相交的部分 ST_Intersection(geometry, geometry)
``` 肯定是第一种,如果坐标要排序的话,还要加上线段序号,第二种不好取数据 xiaoyxf 发表于 2022-6-6 14:13
指的是两条线段重叠的坐标点还是?
比如地图导航从起点到终点可以有几种路线规划,其中某条线路是这几种规划必经的,也就是公共部分,被几条线段共用,应该属于坐标点重叠吧 很快再相见123 发表于 2022-6-6 14:15
建议使用PostgreSQL/PostGIS数据库,借助内置的函数,插入Geometry类型数据
`INSERT INTO haz_che_dis ...
也找了一些spatial database的资料,不过没深入了解,抽空学习一下,感谢感谢~
页:
[1]
2