本文介绍了如何使用Npgsql和OrmLite(使用postgresql,postgis,c#)定义“地理"类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在C#类模型中定义postgis的地理"类型,以便OrmLite可以轻松地将其传递给Postgresql,以便除了将空间数据保存到地理"列之外,还可以运行空间查询?

How do I define a postgis 'geography' type in my C# class model so that OrmLite can easily pass it through to Postgresql so I can run spatial queries in addition to saving spatial data to the 'geography' column?

推荐答案

最好的库是 NetTopologySuite 这种情况;

The best library is NetTopologySuite for this case;

您可以像这样使用

protected GisSharpBlog.NetTopologySuite.Geometries.Geometry _geom;
public GisSharpBlog.NetTopologySuite.Geometries.Geometry Geom
   {
      get { return _geom; }
      set { _geom = value; }
   }

protected string _geomwkt;
public virtual string GeomWKT
   {
     get
       {
         if (this.Geom != null)
             return this.Geom.ToText();
         else
             return "";
       }
     set
       {
         string wktString = value;
         if (string.IsNullOrEmpty(wktString))
             _geom = null;
         else
           {
             var fact = new GeometryFactory();
              var wktreader = new WKTReader(fact);
              _geom = (Geometry)wktreader.Read(wktString);
           }
        }
   }

这篇关于如何使用Npgsql和OrmLite(使用postgresql,postgis,c#)定义“地理"类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 06:21