我正在使用SQL Server2008中的新地理列和STGeomFromText函数。下面是我的代码(适用于AdventureWorks2008)
DECLARE @region geography;
set @region = geography::STGeomFromText('POLYGON((
-80.0 50.0, -90.0 50.0,
-90.0 25.0, -80.0 25.0,
-80.0 50.0))', 4326);
SELECT @region;我的问题是关于代码中的4326。它应该是一个空间参考ID。当我访问MSDN时,上面没有太多内容。如果我将值更改为56,我会得到一个错误,告诉我该值必须在sys.spatial_reference_systems表中。
您可以通过执行以下命令来查看该表:
select * from sys.spatial_reference_systems 该表中有一个well_known_text列,但它并没有告诉我太多信息。4326的值为:
GEOGCS["WGS 84", DATUM["World Geodetic System 1984", ELLIPSOID["WGS 84", 6378137, 298.257223563]], PRIMEM["Greenwich", 0], UNIT["Degree", 0.0174532925199433]]有人能给我解释一下这个谜团吗?什么是SRID?
发布于 2008-12-18 19:33:07
所以昨天我和一个退伍军人聊了聊,他是一名雷达/地图专家。基本上,他确切地知道这个数字(4326)是什么,它来自哪里,为什么会在那里。
它是计算地理的行业标准。问题是地球并不是一个完美的球体(它在中间凸起),SRID4326解释了这一点。
正如我所说的,表sys.spatial_reference_systems列出了所有代码以及它们是什么。但简而言之,除非你有一个非常具体的理由去使用不同的东西,否则你真的只会使用4326。
发布于 2008-12-17 13:03:17
SRID = Spatial Reference IDentifier
坐标必须使用相同的SRID才能进行比较。否则,你最终会比较千米和英里。或者类似的东西。
发布于 2009-01-01 18:21:35
有很多系统可以绘制地球的地图。例如,您想要映射美国的某个州。您可以将最东南点设置为0,0,并根据该点映射所有其他空间坐标。另一方面,您可能希望映射跨越整个地图的一些空间数据。在任何情况下,您都必须选择某个点作为0,0。此外,您必须选择某种度量单位:英里/公里/度/其他更适合您的神奇单位。多年来,已经开发了很多这样的系统。每一个都有它自己的零点,它自己的坐标,它自己关于地球是否平的规则。SRID或SRS是这样的系统的id。使用此id,您可以将一个系统中表示的点映射到另一个系统,尽管有时会涉及一些相当复杂的数学运算。
和大约4326个SRID。它也称为“WGS84”(http://en.wikipedia.org/wiki/World_Geodetic_System)系统。这是在球形(而不是扁平)地球上表示点的最常见的系统。它使用度、分、秒表示法,其x和y坐标通常称为纬度和经度。
最常用的非球面地球投影称为UTM。你可以在这里阅读到:http://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system
无论如何,只要您不进行从一个系统到另一个系统的任何空间转换,您就不会真正关心您的数据使用的系统。
https://stackoverflow.com/questions/373589
复制相似问题