9

我在我的数据库中发现商店位置表示为geometry数据类型。

是否可以转换为坐标lat并将long其用作 bing 地图的输入?

在此处输入图像描述

4

5 回答 5

12

这适用于 sql server 中的几何类型

SELECT  [Geometry].STX AS [Longitude],
    [Geometry].STY AS [Latitude]
FROM YourTable
于 2015-01-13T15:49:53.167 回答
2

神奇的 8 球说“所有迹象都指向‘是’”。该文档显示了 Lat 和 Long 方法。所以,你会这样做:

select 
   Geometry.Lat as [Latitude],
   Geometry.Long as [Longitude]
from dbo.your_table

顺便说一句,如果您有权更改该列的名称,请这样做;您不会调用数据类型为整数“int”的列。

于 2013-02-28T03:37:16.320 回答
1

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;
于 2020-01-09T20:32:30.780 回答
1

帖子有点老了,但是...

您需要使用一些可以进行预测的资源。许多商店都可以访问 ESRI REST Geometry 服务,一个常见的公开服务是Project.

以下是手动步骤,您可以使用普通的 DB 工具将它们重新打包到脚本/过程中:

--QA 数据来自一个名为 ShapeGeom 的 geom 已知点

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????/rest/services/Utilities/Geometry/GeometryServer/project? inSR=2229 &outSR=4251&geometries= 5786835.7214864492%2C+2235317.366254434 &f=json

- 结果:

{
 "geometries": [
  {
   "x": -120.59089279999577,
   "y": 35.107214200388704
  }
 ]
}
于 2017-04-14T15:52:25.190 回答
0

我在 .NET 中开发了一个库,可以从事务 sql 调用将 WGS84/UTM 坐标转换为纬度和经度

你可以从 github 下载它:

https://github.com/jv-garcia/UTM2LATITUDE

用法:

选择 dbo.UTM2LATITUDE(723399.51,4373328.5,'S',30) 作为纬度,dbo.UTM2LONGITUDE(723399.51,4373328.5,'S',30) 作为经度

结果:

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>
于 2020-04-28T21:47:15.233 回答