我是Spatialite的新手。我有以下查询:
select A.* from linka as A, pointa as B where Contains(Buffer(B.Geometry, 100), A.Geometry)
我实际上想创建100米的缓冲区并了解其中包含的链接。
我可以找到插入的“ 100”实际上是度值,它为我提供了该范围内的输出。
我也可以在查询中输入度值,但是在世界范围内,从度到米/公里的转换并不相同。我经过许多站点,能够知道1度=大约110公里。但是从GIS专家和一些参考站点也可以了解到地球上的每个极点都是不同的。
例如,对于平面近似,度量x和y在Alta /挪威的差异在x方向上为34 km,在y方向上为111 km。使用地理坐标时,缓冲区看起来与此类似:http : //extremelysatisfactorytotalitarianism.com/blog/wp- content/uploads/2010/08/tissot_indicatrix_equirectangular_proj.png
我构建了将地理数据转换为几何(X,Y坐标格式)数据并在Spatiallite可以理解的地方进行转换的软件。
我还尝试阅读有关SRID的内容,但无法理解如何将其插入查询中。
如果我假设您当前的投影是WGS84,则将您的几何临时转换为公制投影(例如UTM),请尝试以下语句
transform (buffer (transform (B.geometry, #projection), #dist), 4326))
-in #projection:您的新投影,例如:WGS 84 / UTM区域31N的32631(选择适合您区域的投影)
-in #dist:以米为单位的距离
(WGS84为4326)