Mais

Qualquer biblioteca .NET para calcular a área do polígono?


Existe uma biblioteca .NET para calcular a área delimitada por um polígono formado por coordenadas geográficas (lat longs)?


SharpMap tem uma classe de polígono com um método Area. Mas antes de ligar para isso, você deve considerar projetando as coordenadas do polígono em uma projeção de área igual para produzir resultados significativos. Parece que o SharpMap usa o ProjNet, que tem Albers, mas também vejo que agora há um wrapper c # para o Proj4.


O NetTopologySuite oferece o que você precisa e muito mais: http://code.google.com/p/nettopologysuite/


Outra opção é usar a biblioteca Microsoft.SqlServer.Types. Embora não seja fornecido em .NET, está disponível como um pacote nuget ou você pode encontrá-lo em sua instalação SqlServer (ou Express) (% programfiles% Microsoft SQL Server 100 SDK Assemblies) como Microsoft.SqlServer .Types.dll

Obviamente, ele depende da Microsoft (e da biblioteca de tipos de SQL que pode ter seus próprios problemas de licenciamento), então as outras opções fornecidas podem ser melhores, mas se você já estiver integrando com o SqlServer 2008, então esta pode ser uma boa maneira de vai.

Fazer um cálculo de área é muito simples (incluí um teste NUnit abaixo para demonstrá-lo.

using System; using System.Text; using Microsoft.SqlServer.Types; using System.Data.SqlTypes; using NUnit.Framework; namespace YourNamespace {class GeometryTest {[Test] public void CheckAreaTest () {string polygon = "POLYGON ((145 -42, 147 -42, 147 -40, 145 -40, 145 -42))"; // string wkt na Tasmânia, Austrália SqlGeography geom = new SqlGeography (); SqlChars geometryString = new SqlChars (new SqlString (polígono)); geom = SqlGeography.STPolyFromText (geometryString, 4326); Assert.AreEqual (37371149986.1, Math.Round (geom.STArea (). Value, 1)); }}}

Vincule a System.Data.Entity.dll e use o objeto DbGeography como:

DbGeography geography = DbGeography.FromText (wktString); Duplo? myArea = geography.Area;


Assista o vídeo: Biblioteka Publiczna we Wronkach: Katalog Online - rezerwujesz, odbierasz! (Outubro 2021).