postgresql地图查询(判断点是否在多边形内)

点位在多边形内判断sql:

select name, lng, lat from zd where point(lng, lat) <@ polygon(path('(( 118.22342, 23.1299494 ), (119.292001, 29.993993), (118.44520992, 25.1320021))'));

如果lng, lat存的为字符串,则需要转为数值类型,例如:

to_number(lng, '999.99999999')

更多运算参考:

 

 

参考博客链接: https://www.cnblogs.com/alianbog/p/5657325.html

 

 

 

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Vue3中在高德地图上画多边形并将坐标信息存入PostgreSQL数据库,可以按照以下步骤操作: 1. 安装高德地图JavaScript API和Vue3-amap插件 可以在高德开放平台上申请API key,并使用npm安装Vue3-amap插件。 2. 创建高德地图组件 可以使用Vue3-amap提供的Amap组件,将地图显示在页面上。 3. 在地图上绘制多边形 可以使用高德地图提供的Polygon类,在地图上绘制多边形。在绘制结束后,可以获取多边形的坐标信息。 4. 将坐标信息存入PostgreSQL数据库 可以使用PostgreSQL的Node.js驱动程序,连接到数据库并将坐标信息存入数据库表中。 以下是示例代码: ```vue <template> <div> <amap :amapkey="apiKey" v-bind="$attrs" v-on="$listeners"> <polygon v-if="showPolygon" :path="polygonPath" stroke-color="#FF33FF" stroke-opacity="0.8" stroke-weight="6" fill-color="#1791FC" fill-opacity="0.35" @polygoncomplete="onPolygonComplete" /> </amap> </div> </template> <script> import AmapVue from "vue3-amap"; import pg from "pg"; export default { name: "Map", components: { Amap: AmapVue.Amap, Polygon: AmapVue.Polygon, }, data() { return { apiKey: "your_api_key", showPolygon: false, polygonPath: [], }; }, methods: { onPolygonComplete(event) { const polygon = event.target; const path = polygon.getPath(); const coordinates = path.map((point) => [point.lng, point.lat]); this.savePolygonToDatabase(coordinates); }, async savePolygonToDatabase(coordinates) { const connectionString = "postgres://user:password@host:port/database"; const client = new pg.Client({ connectionString }); await client.connect(); const query = { text: "INSERT INTO polygons (coordinates) VALUES ($1)", values: [coordinates], }; await client.query(query); await client.end(); console.log("Polygon saved to database"); }, }, }; </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值