gpt4 book ai didi

Spring JdbcTemplate更新Postgis地理专栏

转载 作者:行者123 更新时间:2023-11-29 13:39:36 26 4
gpt4 key购买 nike

我正在尝试使用下面的代码用 Lon 和 Lat 更新 Postgis 地理列

public void updateGeoLocation(String lat, String lon) {
template.update(
"UPDATE property set geo = ST_GeomFromText('POINT(? ?)', 4326) where id = 'b15e7a7e-3b27-4a2f-b312-33ebbed594b5'",
lon, lat);
}

但我得到以下异常

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [UPDATE property set geo = ST_GeomFromText('POINT(? ?)', 4326) where id = 'b15e7a7e-3b27-4a2f-b312-33ebbed594b5']; The column index is out of range: 1, number of columns: 0.; nested exception is org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.

我手动尝试了以下查询并且它有效,但我在使用 JdbcTemplate 时遇到问题

update property set geo = ST_GeomFromText('POINT(-71.060316 48.432044)', 4326) where id = 'b15e7a7e-3b27-4a2f-b312-33ebbed594b5'

如何使用 JdbcTemplate 为 Postgis 地理列更新/插入经纬度?

最佳答案

我应用了函数 ST_GeogFromText,并像这样使用它:

"ST_GeogFromText('SRID=4326;POINT(" + longitude + " " + latitude + ")')"

注意 ST_GeogFromText 和 ST_GeomFromText 之间的区别

关于Spring JdbcTemplate更新Postgis地理专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57262202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com