Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Postgresql中从经纬度中查找城市名称?_Sql_Postgresql_Analytics_Postgis - Fatal编程技术网

如何在Postgresql中从经纬度中查找城市名称?

如何在Postgresql中从经纬度中查找城市名称?,sql,postgresql,analytics,postgis,Sql,Postgresql,Analytics,Postgis,我有一个数据库,其中存储了各种属性的纬度和经度。我想知道,这些房产属于哪个城市(所有房产都在美国) 谈到Postgresql,首先需要获取美国城市边界形状文件的数据。可能的地点是 https://www.census.gov/geo/maps-data/data/tiger.html https://www.census.gov/geo/maps-data/data/tiger-cart-boundary.html https://catalog.data.gov/dataset?tags=

我有一个数据库,其中存储了各种属性的纬度和经度。我想知道,这些房产属于哪个城市(所有房产都在美国)

谈到Postgresql,首先需要获取美国城市边界形状文件的数据。可能的地点是

https://www.census.gov/geo/maps-data/data/tiger.html  
https://www.census.gov/geo/maps-data/data/tiger-cart-boundary.html
https://catalog.data.gov/dataset?tags=cities
然后将数据导入postgres。我假设您的属性数据已经存储在postgres中。确保城市边界的SRID几何体类型为4326。如果没有,可以使用ST_变换函数轻松地进行转换

最后,要检查某个特定的lat/long属于哪个城市,需要将lat/long转换为点几何图形,并对照城市数据进行检查。e、 g应该是这样的事情

SELECT c.city_name FROM cities_boundaries AS c, properties AS p
WHERE ST_CONTAINS(c.geom, ST_SetSRID(ST_MakePoint(p.longitude, p.latitude), 4326))  

请试用google MAP API如何将google MAP API集成到我的SQL查询中?首先,使用SQL查询获取lat或long。然后在此API中传递lat或long)我的目标是使用SQL完成整个过程(如果可能的话),而不使用任何其他脚本语言。因此,我的问题是,如何使用SQL进行API调用?如果在Postgis中加载tiger扩展(不使用Google Maps),则只能使用SQL进行调用。按照本页和本页上的说明进行操作: