GPS项目中涉及到的技术有地图纠偏,js与winform c#的交互等方面:



 1   google地图纠偏,能够私下call我...QQ(964877814)....,事实上主要由于考虑到政治以及军事安全的问题。所以国内的地图存在偏差。并且不同地方的偏差不同,可是对应的计算偏差的算法不可能公开的缘故。所以仅仅能依靠一些纠偏数据来纠正。

纠偏数据能够自己获得,由于地图所谓的偏差值仅仅是:(例增加使用google map 代码加GPS经纬度),明显,GPS经纬度不可能出现错误,人家是卫星各种东东定位。商业产品...所以出错就是在于google map与 GPS经纬度的交互后,也就是说实际在google把准确的值换成偏差后的值啦...甚至是说...那些地质測绘的厂商本来给他们的就是经过有关部门..的数据.... 所以实际上GPS+卫星地图的这样的定位是没有经过偏差处理的...而假如你想获得纠偏数据..



步骤:

   比方你在珠海...

      1  然后你首先通过GPS定位装置获得一个坐标点(经纬度)point_1;

      2  在“卫星“模式下,能够在point_1处标记一个marker_1,事实上此时不存在偏差的显示;

      3  在”地图“模式下,能够再point_1经纬度处标记一个marker_2,嘿嘿。此时呢,就是准确的经纬度+加上偏差的不准确地图;

      4  の...然后将模式转变成”卫星模式“下。の...由此获得marker_2如今实际的经纬度值点point_2;の...如今我们手上就有两个经纬度啦。

      5  做差吧。point_2.x-point.x=dx;point_2.y-point.y=dy;...事实上这就是计算方法...循环几次之后,能够通过什么拟合东东的数学公式(球体上两点等等),来计算其周围的偏差...可是不同的城市甚至镇 乡都要取几次值...

2  winform c#与通过方式post与server交互:

引入using System.Net;

using System.Collections.Specialized;

代码例如以下:

  1. private void GetInfo()
  2. {
  3. WebClient w = new WebClient();
  4. NameValueCollection VarPost = new NameValueCollection();
  5. VarPost.Add("lng", textBox1.Text.Trim());
  6. //将textBox1中的数据变为用a标识的參数。并用POST传值方式传给网页 ­
  7. VarPost.Add("lat", textBox2.Text.Trim());
  8. VarPost.Add("__VIEWSTATE", "/wEPDwULLTIwNzQwMDQ3MTVkZKHa1lpe/9+nyHf2xzOHEEt1eGFB");
  9. VarPost.Add("__EVENTVALIDATION", "/wEWBAL65/7NAgKL1Y7VCgKKhszBCQKM54rGBglQFPnfb0garkdt736MDNGGoKlX");
  10. VarPost.Add("Button1","经纬度定位");
  11.    //将參数列表VarPost中的全部数据用POST传值的方式传给http://申请好的域名或用IIs配置好的地址/Default.aspx,
  12.    //并将从网页上返回的数据以字节流存放到byRemoteInfo中)(注:IIS配置的时候常常没配置好会提示错误,嘿) ­
  13. string url = <a href="http://www">http://www.</a>网址;
  14. try
  15. {
  16. byte[] byRemoteInfo = w.UploadValues(new Uri(url), "post", VarPost);
  17. string sRemoteInfo = System.Text.Encoding.UTF8.GetString(byRemoteInfo);
  18. //StreamReader sr = new StreamReader(@"C:\temp.txt", Encoding.Default);
  19. //string html = sr.ReadToEnd();
  20. foreach (Match m in Regex.Matches(sRemoteInfo, @"(?<=markpoint\().*(?=,')"))
  21. {
  22. string[] splitstring = m.Value.ToString().Split(',');
  23. label1.Text=splitstring[0]+"   "+splitstring[1];
  24. // webBrowser_map.Document.InvokeScript("markpoint", new Object[] {});
  25. }
  26. using (StreamWriter sw = new StreamWriter("TestFile.txt"))
  27. {
  28. // Add some text to the file.
  29. sw.Write(sRemoteInfo);
  30. }
  31. }
  32. catch (WebException ex)
  33. {
  34. label1.Text = ex.ToString();
  35. }
  36. }

或许大家会对这一段代码产生疑问:

  1. VarPost.Add("lng", textBox1.Text.Trim());
  2. //将textBox1中的数据变为用a标识的參数,并用POST传值方式传给网页 ­
  3. VarPost.Add("lat", textBox2.Text.Trim());
  4. VarPost.Add("__VIEWSTATE", "/wEPDwULLTIwNzQwMDQ3MTVkZKHa1lpe/9+nyHf2xzOHEEt1eGFB");
  5. VarPost.Add("__EVENTVALIDATION", "/wEWBAL65/7NAgKL1Y7VCgKKhszBCQKM54rGBglQFPnfb0garkdt736MDNGGoKlX");
  6. VarPost.Add("Button1","经纬度定位");

这个是http的requst的body部分(具体了解HTTP协议),可以通过Fiddler(Fiddler是一个web调试代理。它可以记录全部client和server间的http请求。同意你监视,设置断点。甚至改动输入输出数据,fiddler包括了一个强大的基于事件脚本的子系统,而且可以使用.net框架语言扩展。),他可以抓取http包:

事实上总结起来,winform c#与server交互,而winform这方事实上就是一个“http包”发送方...而server仅仅要知道这是身份就可以。の...也就是说本来浏览器要办的事。你winform来做...“http模拟”....事实上最主要知道:通过Fiddle所得的Body部分来确定发送的数据集合+URL....(待续....)

3 winform中webbrowser设置url:

  1. System.IO.FileInfo file = new System.IO.FileInfo("../../GoogleMap.htm");
  2. // WebBrowser控件显示的网页路径
  3. webBrowser_map.Url = new Uri(file.FullName);
  4. // 将当前类设置为可由脚本訪问
  5. webBrowser_map.ObjectForScripting = this;

4 c#引用c++编写的Dll时。当c++中的函数声明为:..int add(int& a,int& b);时

应该在.cs文件里作例如以下处理:

  1. class RectifyTest
  2. {
  3. [DllImport("..\\..\\Lib\\RectifyDll.dll")]
  4. public static extern int Rectify(ref float lng, ref float lan);
  5. }

5  VC2005 中char 转换 LPCWSTR 问题

网上非常多code都是用VC6.0写成的。用VC2005转换后,再编译时常常会遇到字符串转换的问题,搞得你非常郁闷呀。

如MessageBox函数定义一个 char ch[10]; 给ch 写进字符然后调用 MessageBox((LPCWSTR)ch); 编译是没问题,可是显示出来的是乱码,LPCWSTR 类型是多少位的啊?在VC6.0中 能够这样使用 MessageBox(ch); 无须强制转换。

但在2005中就不行,必需要强制转换后才干通过编译。但转换后显示的又是乱码,非常让人郁闷呀。

在windows平台中对LPCTSTR 有例如以下定义

  1. typedef LPCTSTR LPTSTR ;
  2. #ifndef _UNICODE
  3. typedef TCHAR char;
  4. #else
  5. typedef TCHAR wchar_t;
  6. #endif

解决方式例如以下:

在项目属性-->配置属性-->常规-->字符集, 将其换为:使用多字节字符集,编译就通过了。

GPS项目小结的更多相关文章

  1. 记一次SSM项目小结(一)

    记一次SSM项目小结(一) ssm框架 环境配置 服务器配置 解决方法  拦截器重定向到localhost nginx和tomcat中session失效 mybatis的xml文件不生效 数据库用户创 ...

  2. [2017BUAA软工助教]个人项目小结

    2017BUAA个人项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7545780.html 二.评分细则 0.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...

  3. [2017BUAA软工助教]结对项目小结

    2017BUAA结对项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7604111.html 二.评分细则 1.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...

  4. 在oneAPM参加第一个项目小结

    从12月15日开始加入进入oneAPM的第二个项目,也是我真正近距离接触项目的一次吧,到今天差不多接近尾声了,很高心能和大家一起共同改造这个项目,虽然说我做的贡献并不大,但是身临项目真的会收获很多体会 ...

  5. .NET项目开发—浅谈面向接口编程、可测试性、单元测试、迭代重构(项目小结)

    阅读目录: 1.开篇介绍 2.迭代测试.重构(强制性面向接口编程,要求代码具有可测试性) 2.1.面向接口编程的两个设计误区 2.1.1.接口的依赖倒置 2.1.2.接口对实体的抽象 2.2.迭代单元 ...

  6. 一个WPF小项目小结

    一:缘起 老板有做PC桌面客户端的需求,做的是能耗的计算和评估,要算能耗,就有很多环节,最后对这些环节数据进行一些简单计算.我想要是做的话就用比较熟的wpf,就去聊了下,对方给了1张比较复杂的Exce ...

  7. .NET项目开发—浅谈面向对象的纵横向关系、多态入口,单元测试(项目小结)

    阅读目录: 1.开篇介绍 2.使用委托消除函数串联调用 2.1.使用委托工厂转换两个独立层面的对象 3.多态入口(面向对象继承体系是可被扩展的) 4.多态的受保护方法的单元测试(Protected成员 ...

  8. Docker第三方项目小结

    软件项目的成功常常根据其催生的生态系统来衡量.围绕或基于核心技术构建的项目增添了功能和易用性,它们常常日臻完善.Docker就是一个典例,有众多第三方项目扩展.补充或改进Docker. •Docker ...

  9. HotelIInventory项目小结

    最近参与了HotelIInventory这个项目的一个模块的开发.经验不足,对Sql脚本的编写能力还需要提高,这个模块的Sql语句大多是组长替我写的,如果靠我自己来写,我绝对是没有能力完成工作的,在此 ...

随机推荐

  1. 关于Go语言,自己定义结构体标签的一个妙用.

    在Go中首字母大写和小写,决定着这此变量能否被外部调用, 比如:在使用标准库的json编码自定一的结构的时候: <pre style="margin-top: 0px; margin- ...

  2. 第八章openwrt 703N使用HUB(集线器)插U盘等设备

    在这里就要吐槽一下了,在网上一搜索竟然没有一篇详细的关于703N使用hub后挂载u盘的文章,想了很久问了别人还弄了一天晚上终于弄好了.好吧下面开始言归正传: 1.其实一般质量可以的集线器例如SSK这类 ...

  3. [Linux] ubuntu server sudo出现sudo:must be setuid root 完美解决办法

    1.开机按shift或esc先进行recovery模式 2.选择root命令行模式 3.先执行 #mount -o remount,rw / 这个很重要,网上找的很多资料都不全没有这步造成无法恢复成功 ...

  4. Python学习(四)数据结构(概要)

    Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types          int float Text Sequence ...

  5. [Windows]_[删除非空文件夹的注意要点]

    场景: 1. 有时候程序须要生成一些暂时文件夹和暂时文件,在程序退出时须要删除,这时候用win32的api就可以完毕需求.自己遍历文件夹一个个removefile并非高效率的做法. //注意: //1 ...

  6. oracle汉字转拼音

    CREATE OR REPLACE FUNCTION F_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); ...

  7. Java Web学习总结-文件下载

    参考资料:https://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件 ...

  8. java基础知识精华

    转载:https://www.jianshu.com/p/6c078abb720f java基础知识 java内存模型 java运行时数据区域 hashMap 如何解决冲突 存储方式 冲突达到一定数量 ...

  9. Error: Cannot find module 'express' 之 解决方案

    出现如题错误,是因为执行了#npm install -g express的缘故,express没有被写到package.json里面去. 解决也好办,在程序目录下执行#npm install expr ...

  10. 自己定义View步骤

     概述 Android已经为我们提供了大量的View供我们使用,可是可能有时候这些组件不能满足我们的需求,这时候就须要自己定义控件了.自己定义控件对于刚開始学习的人总是感觉是一种复杂的技术. 由于 ...