针对空间类型是面的表
第一步、先在Oracle用SDO_UTIL.TO_WKTGEOMETRY(geom)把面表的空间类型转成wkt格式的数据
第二步、导入到postgresql中(注意这里的字符串字段类型最好都设置为text,lat,lng类型设置为numeric)
第三步、SELECT postgis_full_version();--在pg库查询是否安装几何类型
第四步、alter table baidu_data_sdo add COLUMN geom GEOMETRY(Polygon,4326);--创建一个面的几何类型gemo
第五步、create index baidu on baidu_data_sdo using gist(geom);--添加一个索引
第六步、update baidu_data_sdo set geom=ST_SetSRID(ST_MakePoint(wgslng, wgslat), 4326);--把wkt格式数据转成空间类型
第七步、update baidu_data_sdo set geom=st_geomfromtext(wkt_geom);--把wkt类型转成空间类型
针对空间类型是点的表
第八步、alter table meituan_lb_all add COLUMN gemo GEOMETRY(point,4326);--创建一个点的几何类型gemo
第九步、create index meituan on meituan_lb_all using gist(gemo);--添加一个索引
第十步、update meituan_lb_all set gemo=ST_SetSRID(ST_MakePoint(lng, lat), 4326);--录值
将点与面拉相交(ST_Intersects)
select count(1) from baidu_data_sdo s,meituan_lb_all m where ST_Intersects(s.geom,m.gemo) and ( wgslat>0 or wgslng>0) and (lat>0 or lng>0)