sql - 特定的纬度/经度落在什么 "road"上?美国人口普查形状文件

标签 sql sql-server-2008 geolocation geospatial shapefile

我已将美国人口普查形状文件(所有道路)导入到 SQL Serve 2008 R2 中。我想找出特定的纬度/经度坐标落在哪条“道路”上。该查询是什么样的?

我是 GIS 新手;四处寻找,没有运气。谢谢!

以下是前 10 行作为示例数据集:


MULTILINESTRING ((-73.924385 40.865365, -73.92249799999999 40.866064, -73.920611999999991 40.866758999999995, -73.919215 40.867275, -73.918414 40.867584), (-73.92662 40.864525, -73.924385 40.865365))

LINESTRING (-73.91434 40.862521, -73.915523999999991 40.863040999999996, -73.917063 40.863690999999996, -73.918943 40.864463, -73.919361999999992 40.864809, -73.919996 40.865797, -73.920611999999991 40.866758999999995, -73.921213999999992 40.867692999999996, -73.921725999999992 40.868497, -73.922145 40.86915, -73.922343 40.869459)

LINESTRING (-73.91704399999999 40.867025999999996, -73.918414 40.867584, -73.919754 40.868114)

LINESTRING (-73.91911 40.859573, -73.919845999999993 40.859898, -73.921235 40.860476)

LINESTRING (-73.917913 40.869667, -73.918109 40.86987, -73.918269999999993 40.870035, -73.918643 40.870421, -73.919249999999991 40.871010999999996, -73.919671 40.872076)

LINESTRING (-73.917913 40.869667, -73.918109 40.86987, -73.918269999999993 40.870035, -73.918643 40.870421, -73.919249999999991 40.871010999999996, -73.919671 40.872076)

LINESTRING (-73.911771 40.868096, -73.913352 40.868777, -73.915183 40.869551, -73.91588 40.869847)

LINESTRING (-73.911227 40.871655, -73.91268 40.872292)

LINESTRING (-73.911227 40.871655, -73.91268 40.872292)

LINESTRING (-73.932523 40.854538, -73.932092 40.855157, -73.931654999999992 40.855754999999995, -73.929509 40.857341999999996)

最佳答案

以下命令返回距指定搜索点最近的道路。在我们将空间索引添加到道路表中之前,速度有点慢。

DECLARE @search_point GEOGRAPHY, @search_buffer_metres INT = 50
SET @search_point = geography::STGeomFromText( 'POINT(174.083058 -35.410539)',4326 )
SELECT TOP 1
    ROAD_NAME,SHAPE.STDistance( @search_point ) AS MetresFromSearchPoint
FROM 
    ROADS
WHERE
    SHAPE.STIntersects( @search_point.STBuffer(@search_buffer_metres) ) = 1
ORDER BY
    SHAPE.STDistance( @search_point ) 

关于sql - 特定的纬度/经度落在什么 "road"上?美国人口普查形状文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090973/

相关文章:

sql - Crystal Reports 交叉表,按数据库字段分组

SQL Server 2008 - 如何加入 3 个表

sql-server-2008 - 查找一行中最后一个非空值的列名

ios - 计算从经纬度到街道的距离

Blackberry - 无法从事件线程调用 getLocation() 方法

sql - 是否有 SQL 执行关键字列表,例如。插入、修改

sql - Oracle SQL-在一个选择中选择(在同一表上!)

mysql - 如何查找一个表中的哪些字段与另一个表中的条件相匹配

sql-server - SQL Server 2008 搜索双字节字符

javascript - 地理定位 API - 等待获取位置