当前位置: 首页 > 知识库问答 >
问题:

利用NPGSL和EntityFramework内核在PostGIS上实现几何到地理的转换

郏博瀚
2023-03-14
select * from "Tags" where ST_Distance("Location",'POINT(31.233334 30.033333)'::geography) < 1000 ;
var tags = db.Tags.Where((tag) => tag.Location.Distance(point) < RangeInMeters )
                .Select(tag => new {
                    Id = tag.Id,
                    Title = tag.Title,
                    Coordinates = new double[]{tag.Location.X,tag.Location.Y},
                });

以下是标签位置定义

[Column(TypeName="geometry (point)")]
public Point Location{get;set;}

这里是“点”变量定义

var point = new Point(new Coordinate(Longitude,Latitude));
point.SRID = 4326;

共有1个答案

吴宏扬
2023-03-14

将column属性更改为[column(typename=“Geography”)]。如果点已经是一个地理位置,你不需要石膏。使用NetTopologySuite查看空间映射中的示例。

来自doc示例:

public class City
{
    public int Id { get; set; }
    public string Name { get; set; }

    [Column(TypeName="geography")]
    public Point Location { get; set; }
}

var nearbyCities = context.Cities.Where(c => c.Location.Distance(somePoint) < 100);

您可以使用st_GeographyFromtext直接创建地理点。从PostGIS地理文档中,您可以用以下方法计算两点之间的距离(以米为单位):

SELECT ST_Distance(
  ST_GeographyFromText('POINT(-118.4079 33.9434)'), -- Los Angeles (LAX)
  ST_GeographyFromText('POINT(2.5559 49.0083)')     -- Paris (CDG)
  );
9124665.26917268
 类似资料:
  • 我想问一下使用PostGIS函数的几何和地理有什么区别。 执行以下查询时: 我拿到了327.88195438529度。 但是当我将几何转换为地理时,如以下查询: 我得到了333.810802282843度。 地理选角会给出更准确的结果吗?还是会做出不同的计算? 我的几何形状的 SRID=4326。 提前谢谢你。

  • 我正在尝试使用postgis设置一个带有hibernate空间的项目。按照hibernate空间4.0-M1的教程,我首先遇到了无法找到依赖postgis-jdbc-1.5.3.jar的问题。就像有人在这里建议的那样,我使用了1.5.2版和教程编译。 但是如果我尝试运行它,我会出错。我将Hibernate的调试级别设置为调试und时偶然发现了以下问题: 错误是德语,但意味着“几何”类型不存在。 如

  • POSTGIS=“2.5.4” [扩展] PGSQL=“120” GEOS=“3.8.1-CAPI-1.13.3” PROJ=“Rel. 6.3.2, May 1st, 2020” GDAL=“GDAL 3.0.4, 2020/01/28 发布” LIBXML=“2.9.7” LIBJSON=“0.13.1” LIBPROTOBUF=“1.3.0” RASTER Java Postgis Depe

  • 最近,我偶然发现了http://dask.pydata.org/en/latest/,因为我有一些pandas代码,它只运行在一个核心上,我想知道如何利用我的其他CPU核心。dask是否可以很好地使用所有(本地)CPU内核?如果是,它与熊猫的相容性如何? 我可以用多个CPU来处理熊猫吗?到目前为止,我读到关于发布GIL的消息,但这一切似乎相当复杂。

  • 问题内容: 我对Spring框架还很陌生,并且在设置我当前正在研究的项目时遇到了一些麻烦。我需要能够连接到两个不同的数据库,一个是MongoDB,另一个是MSSQL。我正在使用JPA连接到MSSQL。 我遇到的问题是,当我希望它对MSSQL进行调用时,它似乎正在尝试对Mongo数据库进行调用,而我不确定如何告诉它要读取的内容。我看到过这些帖子建议使用注释将其定向到正确的实现,但是我认为这对我的情况

  • 本文向大家介绍利用vue-router实现二级菜单内容转换,包括了利用vue-router实现二级菜单内容转换的使用技巧和注意事项,需要的朋友参考一下 二级菜单导航是一种很普遍的功能,一般网页都会有这个功能。如果是平常的做法就是改变url,跳到相应的页面;还有一种就是frame。 如果用vue的话,可以用vue-router改变<router-view>里面的组件,这样就能做到不刷新页面都能跳到相