• 大小: 81KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: C#  MapProject  

资源简介

对经纬度坐标进行读取,完成投影后绘制在界面上,另外实现道格拉斯算法对地图抽稀

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.IO;


namespace 兰勃特墨卡托投影
{
    public class MyPoint
    {
        public double x;
        public double y;
    }

    public struct line//记录直线参数的结构
    {
        public double k;
        public double b;
    }
    class Dpeucker
    {
        List outPoint = new List();
        public void Do(List inPoint double DPictureBox picbox  )
        {
            int n1 = 0;
            int n2 = inPoint.Count;
            Douglas(inPoint n1 n2 D);

            //Bitmap memoryBuffer1 = new Bitmap(picbox.Width picbox.Height);
            //Graphics g = Graphics.FromImage(memoryBuffer1);
            Graphics g = picbox.CreateGraphics();
            Pen p = new Pen(Color.Red 2f);           
            g.ScaleTransform(0.00009f 0.00009f);//画面缩小
            g.TranslateTransform(5200000 7200000);//平移
            g.RotateTransform(-90);//旋转  
            Point[] points = new Point[outPoint.Count];
            for (int i = 0; i < outPoint.Count; i++)
            {
                points[i].X = (int)outPoint[i].x;
                points[i].Y = (int)outPoint[i].y;
            }
            g.DrawLines(p points);
            g.Dispose();

            //picbox.Visible = true;
            //picbox.Image = memoryBuffer1;
            
            //List mPoints = outPoint.Distinct().ToList(); ;

        }

        /// 
        /// 求直线斜率与截距
        /// 

        /// 
        /// 
        /// 
        private line parameter(MyPoint p1 MyPoint p2)
        {
            double k b;
            line newcs = new line();
            k = (p2.y - p1.y) / (p2.x - p1.x);
            b = p1.y - k * p1.x;
            newcs.k = k;
            newcs.b = b;
            return newcs;
        }

        /// 
        /// 求点到直线的距离
        /// 

        /// 
        /// 
        /// 
        private double distance(MyPoint dot line cs)
        {
            double dis = (Math.Abs(cs.k * dot.x - dot.y + cs.b)) / Math.Sqrt(cs.k * cs.k + 1);
            return dis;
        }

        /// 
        /// 
        /// 

        /// 
        /// 
        /// 
        /// 
        private void Douglas(List InPoints int n1 int n2 double d)
        {
            int num = InPoints.Count;
            //List OutPoint = new List();
            int Max = 0;//定义拥有最大距离值的点的编号
            line MyLine = new line();
            MyLine = parameter(InPoints

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      27648  2019-08-29 21:32  兰勃特墨卡托投影\bin\Debug\兰勃特墨卡托投影.exe

     文件      44544  2019-08-29 21:32  兰勃特墨卡托投影\bin\Debug\兰勃特墨卡托投影.pdb

     文件      21464  2019-08-07 10:20  兰勃特墨卡托投影\bin\Debug\兰勃特墨卡托投影.vshost.exe

     文件       4942  2019-08-30 18:16  兰勃特墨卡托投影\Dpeucker.cs

     文件      15707  2019-08-29 21:33  兰勃特墨卡托投影\Form1.cs

     文件      24922  2019-08-29 21:33  兰勃特墨卡托投影\Form1.Designer.cs

     文件       8564  2019-08-29 21:33  兰勃特墨卡托投影\Form1.resx

     文件       3403  2019-08-13 21:46  兰勃特墨卡托投影\GetDataFromTxt.cs

     文件       3672  2019-09-22 15:43  兰勃特墨卡托投影\MapProject.cs

     文件       1209  2019-09-20 15:23  兰勃特墨卡托投影\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7088  2019-08-19 13:02  兰勃特墨卡托投影\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件         42  2019-08-19 13:02  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.csproj.CoreCompileInputs.cache

     文件       1531  2019-08-13 23:06  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.csproj.FileListAbsolute.txt

     文件        847  2019-08-29 21:32  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.csproj.GenerateResource.cache

     文件       9084  2019-08-11 12:25  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.csprojAssemblyReference.cache

     文件      27648  2019-08-29 21:32  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.exe

     文件       1942  2019-08-29 21:32  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.Form1.resources

     文件      44544  2019-08-29 21:32  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.pdb

     文件        180  2019-08-19 13:04  兰勃特墨卡托投影\obj\Debug\兰勃特墨卡托投影.Properties.Resources.resources

     文件       5148  2019-08-13 21:46  兰勃特墨卡托投影\peucker.cs

     文件        505  2019-07-28 08:45  兰勃特墨卡托投影\Program.cs

     文件       1368  2019-07-28 08:45  兰勃特墨卡托投影\Properties\AssemblyInfo.cs

     文件       2900  2019-07-28 08:45  兰勃特墨卡托投影\Properties\Resources.Designer.cs

     文件       5612  2019-07-28 08:45  兰勃特墨卡托投影\Properties\Resources.resx

     文件       1111  2019-07-28 08:45  兰勃特墨卡托投影\Properties\Settings.Designer.cs

     文件        249  2019-07-28 08:45  兰勃特墨卡托投影\Properties\Settings.settings

     文件       3877  2019-08-19 13:04  兰勃特墨卡托投影\兰勃特墨卡托投影.csproj

     目录          0  2019-07-28 08:45  兰勃特墨卡托投影\obj\Debug\TempPE

     目录          0  2019-09-28 00:16  兰勃特墨卡托投影\bin\Debug

     目录          0  2019-08-07 10:14  兰勃特墨卡托投影\bin\Release

............此处省略9个文件信息

评论

共有 条评论