我在我的数据库中发现商店位置表示为geometry
数据类型。
是否可以转换为lat
和long
坐标并将其用作bing地图的输入?
答案 0 :(得分:10)
这适用于sql server
中的几何类型SELECT [Geometry].STX AS [Longitude],
[Geometry].STY AS [Latitude]
FROM YourTable
答案 1 :(得分:3)
神奇的8球说“所有迹象都指向'是'”。 The documentation显示了Lat和Long方法。所以,你会这样做:
select
Geometry.Lat as [Latitude],
Geometry.Long as [Longitude]
from dbo.your_table
顺便说一句,如果您有权更改该列的名称,请执行此操作;你不会调用数据类型为整数“int”的列。
答案 2 :(得分:1)
帖子有点旧,但是......
您需要使用一些可以进行投影的资源。许多商店都可以访问ESRI REST Geometry服务,常见的公开服务是Project
。
以下是手动步骤,您可以使用常规数据库工具将它们重新打包到脚本/过程中:
- 来自名为ShapeGeom
的geom的已知点的QA数据select top 1 ShapeGeom.ToString(),Lat,Long from My_ADDRESS_POINTS
返回:POINT(5786835.7214864492 2235317.366254434)35.10721420 -120.59089280
- 从POINT中提取/重新格式化x,y:5786835.7214864492,2235317.366254434
- REST调用 - 您的路径将不同
--Use inSR with the SRID of your Geometry data
select top 1 ShapeGeom.STSrid from My_ADDRESS_POINTS
- HTTP ???? /休息/服务/公用设施/几何/ GeometryServer /项目的 INSR = 2229 强>&安培; outSR = 4251&安培;几何形状= <强> 5786835.7214864492%2C + 2235317.366254434 < /强>&安培; F = JSON
- 结果:
{
"geometries": [
{
"x": -120.59089279999577,
"y": 35.107214200388704
}
]
}
答案 3 :(得分:0)
2020年1月:显示的先前格式引发以下错误:
OperationalError: (1054, "Unknown column 'geometry_col.Long' in 'field list'")
但是,此格式有效:
SELECT ST_X(geometry_col) AS longitude,
ST_Y(geometry_col) AS latitude
FROM yourTable;
答案 4 :(得分:0)
我已经在.NET中开发了一个库,可以从事务sql调用该库,将WGS84 / UTM坐标转换为纬度和经度
您可以从github下载它:
https://github.com/j-v-garcia/UTM2LATITUDE
用法:
SELECT dbo.UTM2LATITUDE(723399.51,4373328.5,'S',30)AS纬度,dbo.UTM2LONGITUDE(723399.51,4373328.5,'S',30)AS经度
结果:
39,4805657453054 -0,402592727245112
<param name="XUTM">pos UTM X</param>
<param name="YUTM">pos UTM Y</param>
<param name="LatBand">Latitude band grid zone designation letter (see http://www.dmap.co.uk/utmworld.htm) </param>
<param name="LongBand">Longitude band grid zone designation number (see http://www.dmap.co.uk/utmworld.htm) </param>