using Microsoft.ClearScript;
|
using Microsoft.ClearScript.V8;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
using System.Web;
|
|
namespace Turf.cs
|
{
|
public class Tools
|
{
|
public Tools() { }
|
|
private V8Script v8Script;
|
|
public static readonly string BaseDir = AppDomain.CurrentDomain.BaseDirectory;
|
|
private static string js;
|
|
public string TurfJS
|
{
|
get
|
{
|
if (null == js)
|
{
|
string jsFile = Path.Combine(BaseDir, "js\\turf.min.6.5.js");
|
if (File.Exists(jsFile))
|
{
|
js = File.ReadAllText(jsFile);
|
}
|
}
|
|
return js;
|
}
|
}
|
|
public double CalcArea(string code)
|
{
|
try
|
{
|
using (V8ScriptEngine engine = new V8ScriptEngine())
|
{
|
engine.DocumentSettings.AccessFlags = DocumentAccessFlags.EnableFileLoading;
|
engine.DefaultAccess = ScriptAccess.Full;
|
|
string jsFile = Path.Combine(BaseDir, "js\\turf.min.6.5.js");
|
V8Script script = engine.CompileDocument(jsFile);
|
engine.Execute(script);
|
|
string cs = "[113.23063216099904,31.21983148200005,113.23061312499972,31.219450768000044,113.23060360699967,31.21910812599997,113.2305679149997,31.218752397000046,113.23055006899986,31.21841570199999,113.230526275,31.218007625000023,113.23050485999988,31.217670932000015,113.23047154600006,31.21738182700004]";
|
|
object obj = engine.Invoke("pointsToPolygon", cs);
|
|
return null == obj ? 0 : Convert.ToDouble(obj);
|
}
|
}
|
catch (Exception ex)
|
{
|
//
|
}
|
return 0;
|
}
|
}
|
}
|