• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: 其他
  • 标签: SharpMap  

资源简介

基于SharpMap的HeatLayer调用和封装源码。不包含SharpMap.DLL和SharpMap.HeatLayer.DLL

资源截图

代码片段和文件信息

/***************************************************************
*
* 文 件 名: SharpMapHeatlayerHelper
*
* 作 者: 毛健
*
* 创作日期: 2016/11/16 17:21:35
*
* 备 注: 静态类,用于热图(heatlayer)的相关操作。
*
***************************************************************/

using DCMS.Maps;
using DCMS.Maps.WindowsForms;
using DCMS.Maps.WindowsForms.Markers;
using GeoAPI.Geometries;
using SharpMap.Data.Providers;
using SharpMap.layers;
using SharpMap.Rendering.Thematics;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows.Forms;

namespace WebMap
{
    /// 
    /// SharpMap的热图辅助类
    /// 

    internal static class SharpMapHeatlayerHelper
    {
        /// 
        /// 检查数据表合法性
        /// 

        /// 数据表
        /// true为合法,false为非法
        private static bool CheckHeatDataVarification(List heatPoints)
        {
            var pointsCount = heatPoints.Count;
            //数据行数合法性
            if (pointsCount <= 0)
            {
                MessageBox.Show(“您的数据表中没有数据,请检查“);
                return false;
            }

            //①这个方法不是很好,因为类型有可能变动。
            //Int32 fieldCount = typeof(HeatPoints).GetFields().Length;

            //②在确保泛型中有元素的情况下使用反射。
            Dictionary dictionary = new Dictionary();
            dictionary.Add(“Lng“ typeof(double));
            dictionary.Add(“Lat“ typeof(double));
            dictionary.Add(“Value“ typeof(int));
            string[] defaultPropertyNames = dictionary.Keys.ToArray();
            //字段对象结合
            Type typeHeatPoints = heatPoints[0].GetType();
            var properties = typeHeatPoints.GetProperties();
            var propertiesCount = properties.Length;
            //构造外来参数字段集合
            List outFieldNames = new List();
            foreach (PropertyInfo propertyInfo in properties)
            {
                outFieldNames.Add(propertyInfo.Name);
            }

            //字段判断
            if (propertiesCount <= 0)
            {
                MessageBox.Show(“您的TDOA数据中没有任何字段,请添加字段“);
                return false;
            }
            else
            {
                foreach (string defaultPropertyName in defaultPropertyNames)
                {
                    if (!outFieldNames.Contains(defaultPropertyName))
                    {
                        MessageBox.Show(“您的TDOA数据中不包含“ + defaultPropertyName + “字段,请添加该字段“);
                        return false;
                    }
                }
            }
            //双游标模式下的被动索引
            int index = 0;
            //遍历数据行。
            for (int i = 0; i < pointsCount; i++)
            {
                //默认字段游标索引
                string currentPropert

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       18800  2016-12-06 09:15  heatlayer\SharpMapHeatlayerHelper.cs
     文件         310  2016-12-06 09:23  heatlayer\说明.txt
     目录           0  2016-12-06 09:15  heatlayer\

评论

共有 条评论

相关资源