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; } } }