Pedro,
Pouca coisa, infelizmente, apenas alguns conceitos teóricos e um
exemplo simples:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Eg.Spatial" namespace="Eg.Spatial">
<typedef name="Geometry"
class="NHibernate.Spatial.Type.GeometryType, NHibernate.Spatial">
<param name="srid">4269</param>
<param name="subtype">GEOMETRY</param>
</typedef>
<class name="StatePart" table="StatePart" mutable="false" schema-
action="none">
<id name="Id" column="ID">
<generator class="assigned" />
</id>
<property name="Name" column="NAME"/>
<property name="Area" column="AREA"/>
<property name="Perimeter" column="PERIMETER"/>
<property name="Geometry" type="Geometry" column="geom" />
</class>
</hibernate-mapping>
static void Main(string[] args)
{
XmlConfigurator.Configure();
var log = LogManager.GetLogger(typeof (Program));
NHibernateProfiler.Initialize();
var cfg = new Configuration().Configure();
cfg.AddAuxiliaryDatabaseObject(new
SpatialAuxiliaryDatabaseObject(cfg));
var sessionFactory = cfg.BuildSessionFactory();
//Houston, TX
var houstonTX = new Point(-95.383056, 29.762778);
using (var session = sessionFactory.OpenSession())
using (var tx = session.BeginTransaction())
{
var query =
session.CreateCriteria<StatePart>().Add(SpatialExpression.Contains("Geometry",
houstonTX));
var part = query.UniqueResult<StatePart>();
if (part == null)
{
log.InfoFormat("Houston, we have a problem.");
}
else
{
log.InfoFormat("Houston is in {0}", part.Name);
}
tx.Commit();
}
}
On Nov 22, 12:34 pm, Pedro Sousa <
pedro.sou...@gmail.com> wrote:
> Óptima review. E vem mesmo a calhar, pois decidi neste fds actualizar a
> versão do meu projecto actual para o NH 3 :)
>
> Só uma questão. Referes que têm exemplos das Spatial Extensions do NH. Mas é
> alguma coisa de jeito ou são só exemplos básicos?
>
> 2010/11/22 Ricardo Peres <
rjpe...@gmail.com>
>
> > Para quem estiver interessado no livro:
>
> >
http://pontonetpt.org/blogs/ricardoperes/archive/2010/11/18/cr-237-ti...