管道基础大数据平台系统开发-【CS】-ExportMap
13693261870
2024-02-29 81f67d9cf9632cc35ec5026655623a7263b74182
添加V8引擎的调用
已添加1个文件
已修改4个文件
86 ■■■■ 文件已修改
Turf/Controllers/CallController.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Turf/Models/Coordinate.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Turf/Turf.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Turf/Web.config 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Turf/cs/Tools.cs 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Turf/Controllers/CallController.cs
@@ -23,9 +23,7 @@
                return 0;
            }
            Tools tools = new Tools();
            return tools.CalcArea(code);
            return Tools.CalcArea(code);
        }
    }
}
Turf/Models/Coordinate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Turf.Models
{
    public class Coordinate
    {
        public Coordinate() { }
        public Coordinate(double x, double y)
        {
            this.x = x;
            this.y = y;
        }
        public double x { get; set; }
        public double y { get; set; }
        public override string ToString()
        {
            return x + "," + y;
        }
    }
}
Turf/Turf.csproj
@@ -115,6 +115,7 @@
    <Compile Include="Global.asax.cs">
      <DependentUpon>Global.asax</DependentUpon>
    </Compile>
    <Compile Include="Models\Coordinate.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
@@ -124,7 +125,6 @@
    <Folder Include="App_Data\" />
    <Folder Include="Content\" />
    <Folder Include="Data\" />
    <Folder Include="Models\" />
    <Folder Include="Views\" />
  </ItemGroup>
  <ItemGroup>
Turf/Web.config
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
        <!-- PG连接 -->
        <add key="pgConn" value="Server=127.0.0.1;Port=5433;Database=langfang;User Id=postgres;Password=postgres;"/>
        <!--<add key="pgConn" value="Server=192.168.20.205;Port=5433;Database=langfang;User Id=postgres;Password=Postgres!_14_Lf;"/>-->
        <!--<add key="pgConn" value="Server=103.85.165.99;Port=5433;Database=langfang;User Id=postgres;Password=Postgres!_14_Lf;"/>-->
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
Turf/cs/Tools.cs
@@ -1,10 +1,16 @@
using Microsoft.ClearScript;
using Microsoft.ClearScript.V8;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using Turf.Models;
using static Mono.Security.X509.X520;
namespace Turf.cs
{
@@ -16,26 +22,46 @@
        public static readonly string BaseDir = AppDomain.CurrentDomain.BaseDirectory;
        private static string js;
        private static PostgreHelper _dbHelper;
        public string TurfJS
        public static PostgreHelper DBHelper
        {
            get
            {
                if (null == js)
                if (null == _dbHelper)
                {
                    string jsFile = Path.Combine(BaseDir, "js\\turf.min.6.5.js");
                    if (File.Exists(jsFile))
                    {
                        js = File.ReadAllText(jsFile);
                    }
                    _dbHelper = new PostgreHelper();
                }
                return js;
                return _dbHelper;
            }
        }
        public double CalcArea(string code)
        public static string selectCoordinatesByCodeSql = "select ST_X(geom) x, ST_Y(geom) y from bs.s_explorationpoint b where dirid like @code and geom is not null";
        public static string selectCoordinates(string code)
        {
            DbParameter dp = new NpgsqlParameter("@code", code + "%");
            DataTable dt = DBHelper.GetDataTable(selectCoordinatesByCodeSql, dp);
            if (null == dt || 0 == dt.Rows.Count) return null;
            List<Coordinate> list = ModelHandler.FillModel<Coordinate>(dt);
            if (null == list || 0 == list.Count) return null;
            StringBuilder sb = new StringBuilder();
            sb.Append("[");
            foreach (Coordinate cs in list)
            {
                sb.Append(cs.ToString() + ",");
            }
            sb.Remove(sb.Length - 1, 1);
            sb.Append(']');
            return sb.ToString();
        }
        public static double CalcArea(string code)
        {
            try
            {
@@ -48,8 +74,7 @@
                    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]";
                    string cs = selectCoordinates(code);
                    object obj = engine.Invoke("pointsToPolygon", cs);
                    return null == obj ? 0 : Convert.ToDouble(obj);