﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GPS软件平台开发技术博客 &#187; 百度地图</title>
	<atom:link href="http://www.jt808.com/?feed=rss2&#038;tag=%E7%99%BE%E5%BA%A6%E5%9C%B0%E5%9B%BEapi" rel="self" type="application/rss+xml" />
	<link>http://www.jt808.com</link>
	<description>帮助IT团队快速构建符合部标的GPS和视频平台(2379423771@qq.com)</description>
	<lastBuildDate>Sun, 03 Nov 2024 04:30:16 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>GPS部标平台的架构设计(四)-百度地图设计</title>
		<link>http://www.jt808.com/?p=534</link>
		<comments>http://www.jt808.com/?p=534#comments</comments>
		<pubDate>Wed, 16 Jul 2014 10:05:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GPS系统]]></category>
		<category><![CDATA[部标监控平台]]></category>
		<category><![CDATA[gps部标]]></category>
		<category><![CDATA[JT/T 808]]></category>
		<category><![CDATA[百度地图]]></category>
		<category><![CDATA[百度地图纠偏加偏]]></category>
		<category><![CDATA[部标平台]]></category>

		<guid isPermaLink="false">http://www.ltmonitor.com/blog/?p=534</guid>
		<description><![CDATA[部标GPS软件平台之百度地图设计(www.jt808.com) 地图是客户端中不可缺少的一个模块，很多人在设计 [...]]]></description>
			<content:encoded><![CDATA[<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">部标GPS软件平台之百度地图设计(www.jt808.com)</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">地图是客户端中不可缺少的一个模块，很多人在设计和画图时候，喜欢加上地图引擎这样高大上的字眼，显得自己的平台有内涵，说白了就是用第三方的SDK来开发，早期的GPS监 控软件用的都是mapx、mapxtrem、acrgis之类的，使用的都是本地地图。不仅要购买正版地图，还要购买价格不菲的地图引擎license，服务器版的部署的时候，还要绑定到服务器ID上，现在这种开发方式已被抛弃。现在的百度地图、谷歌地图提供的SDK接口丰富，开发方便，系统稳定，大家都用的很爽。</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">在部标GPS软件平台中，由于部标过检的时候，指定要求在四维地图和高德地图中任选一家，必须要有审图号，也就是说必要购买，不能用免费的地图，年费三万起，这个无疑加大了运营成本，加重了企业负担，现在物流运输企业挣钱都是从车轱辘里蹦出来的，那些地图厂商坐地收费，因为是年费，要年年交，真是黑。</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">但是虽说是部标平台，过检是第一步，第二步要给客户用，很多客户由于在实际上网的过程中，对于百度地图已经很接受了，所以经常会指定要求用百度地图。所以我们在设计平 台的时候，考虑多个地图切换和兼容是顺理成章的事情。</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">百度地图的主要优势如下：<br />
	1) 卫星地图，百度的卫星地图虽然远不如谷歌的卫星地图，但是比国内这些四维之类的垃圾要强大多了，谷歌的服务经常被搞，所以忍痛放弃；<br />
	2) 百度的javascript SDK和手机SDK较其他地图要完善的多，升级较多;<br />
	3) API上要比其他厂商的API要丰富，出来Javascript API,也提供了web service API(高德地图目前不提供), 可以在后台使用C#或Java语言调用web服务接口进行坐标转换和位置解析服务。<br />
	5) 地图美观。这个美观主要是在地图图层优化上，不同的zoom下，显示不同的图层，这样地图加载的速度会比较流畅，显示也比较美观。我们自己在开发时，较少考虑这一点，比如车辆图标，当地图缩小到国家级的时候，车辆密密麻麻的显示在一起，实际上要根据不同的zoom进行优化。</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">
	因为地图SDK都是基于Javascript的SDK，所以设计主要集中在前端的Javascript的设计上。</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">主要设计模块分为:<br />
	1)地图主界面页面(jsp);<br />
	2)后台ajax数据调用接口;<br />
	3)地图接口js;<br />
	4)工具栏;</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">地图页面主要控制地图界面UI的布局和显示方式，主要的UI部分包括:&nbsp;<br />
	1) 地图操作工具条；<br />
	2）中心地图DIV;<br />
	3) 历史轨迹查询工具条;<br />
	4) 实时数据显示栏;<br />
	5) 历史轨迹数据显示栏</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;"><img alt="" src="http://images.cnitblog.com/i/304499/201407/161754367242697.jpg" style="border: 0px; width: 758px;" /></p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">地图接口js设计<br />
	首先根据部标要求的地图功能，我们来设计地图操作的放大、缩小、围栏、线路、标注、图层等接口等。</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">地图接口的核心就是对较复杂的围栏和线路操作进行一个封装，因为部标808不仅要求围栏和线路指令下发给终端，终端支持报警，还需要平台也能支持围栏报警和路线偏移报警，主要的操作如下：</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">1）地图上画出多边形、矩形和圆形围栏及线路，并持久化;</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">2) &nbsp;绑定给车辆；</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">3) 下发绑定指令给终端；</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">4) 车辆进入围栏，触发报警; (这里可能是终端报警，平台也要支持报警)</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">5）报警后，显示车辆在地图中心;</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">&nbsp;<img alt="" src="http://images.cnitblog.com/i/304499/201407/161801512715874.jpg" style="border: 0px; width: 758px;" /></p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">ajax调用接口<br />
	1) 当初始化地图的时候，获取用户的权限，根据权限显示不同的地图操作工具;<br />
	2) 获取用户录入的各种图元并加载到地图上显示，如自定义标注、各种类型的围栏、线路等；<br />
	3) 实时监控时，不断获取实时数据，并刷新地图车辆位置，画出实时轨迹;<br />
	4) 历史轨迹回放时，获取历史数据，并刷新地图车辆位置，画出历史轨迹;<br />
	5) 持久化接口，将用户在地图上的标注、画出的围栏、线路等保存到后台数据库；</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">地图服务模块<br />
	1.位置解析模块，不断的解析车辆的坐标，转为地理位置描述，更新到系统中，并在前台显示；<br />
	2.加偏服务模块，根据前台的调用request,调用百度地图的加偏地址，转换坐标在前台地图上显示；</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">3.实时加偏，采用加偏算法和逆向纠偏算法，可以实时的进行百度地图的坐标系统转换，不需要百度自带的webservice服务，避免了百度调用接口的限制及性能的损失，因为每次远程调用http，都要耗费不固定的远程调用时间及调用超时的时间。</p>
<p style="line-height: 25.200000762939453px; margin: 10px auto; color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', Times, sans-serif; font-size: 14px;">另外存在一个问题是，无论是那个地图，在地图上画的区域存储在数据库的都是自己地图坐标系统的经纬度节点，如果要进行电子围栏报警，下发给终端的时候，终端是百分百误报的，因为终端的坐标和地图坐标系统不符，需要在下发给终端前，还原成原始坐标再下发给终端。所以就需要逆向还原的纠偏算法。我们提供正向和反向的算法库。算法库代码参见：<a href="http://www.jt808.com/?p=552" style="font-family: Arial, Verdana, sans-serif; font-size: 12px;">http://www.jt808.com/?p=552</a></p>
<h3 style="margin: 0px; padding: 0px; font-size: 14px; font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; color: blue;"><span style="margin: 0px; padding: 0px; color: rgb(0, 0, 128);"><strong style="margin: 0px; padding: 0px;"><u style="margin: 0px; padding: 0px;">需要购买C# .netframework2.0 离线版 DLL 的300元 算法源码600元，包含原始坐标加偏和逆向纠偏还原成原始坐标。提供火星坐标和百度坐标两种接口，不是数据库，提供的是算法源码，实时解析，需要的可以直接联系我(<strong style="color: rgb(34, 34, 34); font-family: Arial, Verdana, sans-serif; font-size: 16px; line-height: normal;"><u><span style="color: rgb(0, 0, 0); font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 18px;">2379423771@qq.com</span></u></strong>)购买。</u></strong></span></h3>
<p> (14462)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=534</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPS部标平台架构设计（三) 基于struts+spring+hibernate+ibatis+quartz+mina框架</title>
		<link>http://www.jt808.com/?p=522</link>
		<comments>http://www.jt808.com/?p=522#comments</comments>
		<pubDate>Tue, 24 Jun 2014 10:28:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[部标监控平台]]></category>
		<category><![CDATA[gps部标]]></category>
		<category><![CDATA[百度地图]]></category>
		<category><![CDATA[部标平台]]></category>

		<guid isPermaLink="false">http://www.ltmonitor.com/blog/?p=522</guid>
		<description><![CDATA[注意，此版本是2014年研发的基于Spring2.5和Struts2的版本，此版本的源码仍然销售，但已不再提供 [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify; "><span style="color:#f00;"><span style="font-size: 14px;">注意，此版本是2014年研发的基于Spring2.5和Struts2的版本，此版本的源码仍然销售，但已不再提供源码升级的服务，因为目前我们开发的主流新</span><span style="text-align: justify;">版本是</span><span style="text-align: justify; font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px;">2015-2016年近一年推出的基于</span><span style="font-size:16px;">spring4+springMVC4+mybatis3+Hibernate4+junit4框架构建高性能企业级的部标GPS监控平台，<span style="text-align: justify;">相对于原来的2014年研发的旧版的struts版本，从性能和功能上有了较大的提升，融合了大量客户的需求意见，相对于Struts版本，主要的特点，请点击文章详细阅读和比对：</span></span></span></div>
<div style="text-align: justify; ">
<h2 style="margin: 0px; padding: 0px 0px 3px; font-size: 2em; color: rgb(92, 121, 144); text-shadow: rgb(255, 255, 255) 0px 1px 0px, rgb(190, 190, 190) 0px -1px 3px; font-family: Georgia, Arial, Helvetica, sans-serif; text-transform: capitalize; text-align: start;"><span style="color:#f00;"><u><a href="http://www.jt808.com/?p=939" rel="bookmark" style="margin: 0px; padding: 0px; color: rgb(38, 38, 38); text-decoration: none;">基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台</a></u></span></h2>
<h2 style="margin: 0px; padding: 0px 0px 3px; font-size: 2em; color: rgb(92, 121, 144); text-shadow: rgb(255, 255, 255) 0px 1px 0px, rgb(190, 190, 190) 0px -1px 3px; font-family: Georgia, Arial, Helvetica, sans-serif; text-transform: capitalize; text-align: start;">&nbsp;</h2>
</div>
<div>
<p align="left" class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">在开发一个基于</span><span lang="EN-US" style="font-family: Arial;">Java</span><span style="font-family: 宋体;">的、</span><span lang="EN-US" style="font-family: Arial;">BS</span><span style="font-family: 宋体;">架构的</span><span lang="EN-US" style="font-family: Arial;">GPS</span><span style="font-family: 宋体;">平台的时候，我们总是要花费很多心思去选择框架，在此基础上进行封装提供易用的功能，来作为我们快速开发的平台。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span style="font-family: 宋体;">有的公司有积累，可能在此上面花费的时间比较少，有的没积累，可能为了选择什么样的框架，为了优缺点争论不休，耽误个把月时间都有可能。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">我希望在此给出一个</span><span lang="EN-US" style="font-family: Arial;">GPS</span><span style="font-family: 宋体;">平台的标准模版，供大家参考，统一思想，快速进入状态。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span style="font-family: 宋体;">平台自然是基于传统的</span><span lang="EN-US" style="font-family: Arial;">MVC</span><span style="font-family: 宋体;">模式的思想来开发，自不待言，而</span><span lang="EN-US" style="font-family: Arial;">MVC</span><span style="font-family: 宋体;">框架，我选择专注于控制层的</span><span lang="EN-US" style="font-family: Arial;">Struts2,</span><span style="font-family: 宋体;">框架，专注于容器管理，面向接口和服务开发的</span><span lang="EN-US" style="font-family: Arial;">Spring</span><span style="font-family: 宋体;">框架，专注于持久层的</span><span lang="EN-US" style="font-family: Arial;">Hibernate</span><span style="font-family: 宋体;">、</span><span lang="EN-US" style="font-family: Arial;">iBatis</span><span style="font-family: 宋体;">框架。专注于通信层开发的</span><span lang="EN-US" style="font-family: Arial;">Mina</span><span style="font-family: 宋体;">框架。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span style="font-family: 宋体;">采用框架，我首先想到的一点，就是约束和统一，在团队开发中，最忌讳的就是不统一，团队中我们总有些开发技术稍微落后，思想跟不上的成员，靠沟通是没有用的，而是要小孩子的学步车一样，强行把他框在一个范围内做开发，让他跟上总体的开发水平和节奏。不懂得</span><span lang="EN-US" style="font-family: Arial;">MVC</span><span style="font-family: 宋体;">什么意思，也勉强能做出</span><span lang="EN-US" style="font-family: Arial;">MVC</span><span style="font-family: 宋体;">的东西。所以现在的所谓的架构师，很多都是对这些东东玩的转，玩的多了就慢慢有了架构的思想，就想玩游戏，玩多了，就对游戏体验关卡设计有了感觉，再深入了解后，就开始有了格局，开始注重设计了</span><span lang="EN-US" style="font-family: Arial;">.</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><b><span lang="EN-US" style="font-family: Arial;">1) Hibernate</span></b><b><span style="font-family: 宋体;">框架</span></b><b><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></b></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; </span><span style="font-family: 宋体;">这个只要是做</span><span lang="EN-US" style="font-family: Arial;">Java</span><span style="font-family: 宋体;">开发的，基本都在用，除了基本的</span><span lang="EN-US" style="font-family: Arial;">ORM</span><span style="font-family: 宋体;">映射功能之外，我选用它，主要是很方便的自动创建表，在更新实体类的属性后，自动更新库表字段，以及可以方便移植到不同的数据库中，使用</span><span lang="EN-US" style="font-family: Arial;">Hibernate</span><span style="font-family: 宋体;">框架，维护多个关系数据库。只需要维护不同的数据库配置的</span><span lang="EN-US" style="font-family: Arial;">xml</span><span style="font-family: 宋体;">文件，而不是维护多个代码版本。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; </span><span style="font-family: 宋体;">如果使用</span><span lang="EN-US" style="font-family: Arial;">PowerDesigner</span><span style="font-family: 宋体;">工具结合起来，从建模到代码自动生成到逆向更新模型，简直是后台开发人员的最爱。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><b><span lang="EN-US" style="font-family: Arial;">2) Ibatis</span></b><b><span style="font-family: 宋体;">框架</span></b><b><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></b></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; </span><span style="font-family: 宋体;">这个是将开发人员从写</span><span lang="EN-US" style="font-family: Arial;">SQL</span><span style="font-family: 宋体;">，根据查询条件，动态生成</span><span lang="EN-US" style="font-family: Arial;">SQL</span><span style="font-family: 宋体;">的地狱中，拯救出来。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; </span><span style="font-family: 宋体;">很多平台代码量貌似很大，其实都是唬人的，因为重复的写代码，代码行数能不大吗。比如</span><span lang="EN-US" style="font-family: Arial;">GPS</span><span style="font-family: 宋体;">平台中，几十个、上百个报表，每个报表都有四五个动态组合查询条件，你如果自己在代码中拼</span><span lang="EN-US" style="font-family: Arial;">SQL</span><span style="font-family: 宋体;">，代码量很壮观，但是很低级，工作很低级，很容易出错，错了也很难跟踪。也不容易移植。如果要</span><span lang="EN-US" style="font-family: Arial;">SQL</span><span style="font-family: 宋体;">分散在不同的代码文件中，从</span><span lang="EN-US" style="font-family: Arial;">mysql</span><span style="font-family: 宋体;">一直到</span><span lang="EN-US" style="font-family: Arial;">Oracle</span><span style="font-family: 宋体;">，可能是又是一个脏活。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; </span><span style="font-family: 宋体;">我对</span><span lang="EN-US" style="font-family: Arial;">Ibatis</span><span style="font-family: 宋体;">进行了改造，自动加上分页代码，开发人员就不用管分页，由</span><span lang="EN-US" style="font-family: Arial;">Ibatis</span><span style="font-family: 宋体;">得到</span><span lang="EN-US" style="font-family: Arial;">SQL</span><span style="font-family: 宋体;">后，自动根据不同的数据，加上不同的分页机制。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; </span><span style="font-family: 宋体;">如</span><span lang="EN-US" style="font-family: Arial;">mysql</span><span style="font-family: 宋体;">分页，就是在</span><span lang="EN-US" style="font-family: Arial;">select </span><span style="font-family: 宋体;">语句后面加上</span><span lang="EN-US" style="font-family: Arial;">limit , SQLserver</span><span style="font-family: 宋体;">的分页，则是根据</span><span lang="EN-US" style="font-family: Arial;">rowNum</span><span style="font-family: 宋体;">分页，等等。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-size: 9pt; font-family: Arial;">&nbsp;</span></p>
<p align="left" class="MsoNormal"><b><span lang="EN-US" style="font-family: Arial;">3)struts</span></b><b><span style="font-family: 宋体;">的规划和应用</span></b><b><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></b></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;struts</span><span style="font-family: 宋体;">是面向前端请求的处理框架，我们首先要归纳前端的功能请求，并分类，以此作为规划</span><span lang="EN-US" style="font-family: Arial;">struts</span><span style="font-family: 宋体;">的依据。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">首先</span><span lang="EN-US" style="font-family: Arial;">GPS</span><span style="font-family: 宋体;">的请求，主要有</span><span lang="EN-US" style="font-family: Arial;">:</span><span style="font-family: 宋体;">登录，实时数据，报警，报表，基础信息增删改，报表分页查询，地图持久化操作请求，终端指令下发，</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">在设计</span><span lang="EN-US" style="font-family: Arial;">Action</span><span style="font-family: 宋体;">的时候，尽量以单元形成进行规划，对</span><span lang="EN-US" style="font-family: Arial;">XML</span><span style="font-family: 宋体;">文件按功能模块划分。对</span><span lang="EN-US" style="font-family: Arial;">URL</span><span style="font-family: 宋体;">命名形成标准规范。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
</div>
<div>&nbsp;</div>
<div><span style="font-size:14px;">购买GPS平台或GPS监控系统源码，联系我</span><strong style="font-size: 16px;"><u><span style="color: rgb(0, 0, 0); font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 18px;">2379423771@qq.com</span></u></strong></div>
<div><span style="color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px;">.NET平台，参见：</span><a href="http://www.jt808.com/?p=665" rel="bookmark" style="margin: 0px; padding: 0px; color: rgb(38, 38, 38); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(223, 223, 223); line-height: 24px; font-family: Georgia, Arial, Helvetica, sans-serif; font-size: 2em; text-transform: capitalize;">基于Asp.NET MVC构建GPS部标平台</a></div>
<div>
<p align="left" class="MsoNormal"><b><span lang="EN-US" style="font-family: Arial;">4)quartz</span></b><b><span style="font-family: 宋体;">定时器框架</span></b><b><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></b></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">很多</span><span lang="EN-US" style="font-family: Arial;">GPS</span><span style="font-family: 宋体;">平台，大量使用了存储过程了，我见过有家公司维护</span><span lang="EN-US" style="font-family: Arial;">100</span><span style="font-family: 宋体;">多个存储过程，太壮观了，我都不知道如果写存储过程的人走了，接手的人是不是要哭了。连分页也要用存储过程，估计负责的人很擅长存储过程。但他只顾自己爽了，即使不考虑移植，也得考虑维护、调试、</span><span lang="EN-US" style="font-family: Arial;">SVN</span><span style="font-family: 宋体;">库提交、单元测试等等。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">其实代码中，可以做到零存储过程，对于报表统计类的，可以完全采用定时统计的方式进行。如上线率，可以半小时统计一次，也可以一个小时统计一次，完全不用写存储过程，通过漫长的计算，对大量的数据进行聚合运算，得出一个结果来。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; </span><span style="font-family: 宋体;">定时统计是一种规划收到，通过对未来数据增长量的估计，来设计现阶段的数据生成行为，通过规划来避免对数据库大开大合的查询。当车辆数和数据量达到一定层级的时候，就显示出定时统计的威力了。比如报警次数统计，如果允许用户统计任意时间端的报警次数，虽然很灵活，也满足用户需求，但是一个大型</span><span lang="EN-US" style="font-family: Arial;">GPS</span><span style="font-family: 宋体;">平台，每月要产生出巨量的垃圾报警。一个报警统计的</span><span lang="EN-US" style="font-family: Arial;">SQL</span><span style="font-family: 宋体;">查询或存储过程查询就把数据库的</span><span lang="EN-US" style="font-family: Arial;">CPU</span><span style="font-family: 宋体;">推向高潮。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><b><span lang="EN-US" style="font-family: Arial;">5) Spring</span></b><b><span style="font-family: 宋体;">框架</span></b><b><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></b></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">作为</span><span lang="EN-US" style="font-family: Arial;">JAVA</span><span style="font-family: 宋体;">开发的人，就不用说了，是一个容器，一个粘合剂，将各个层的功能，通过配置和依赖注入，达到粘合的作用。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">作为</span><span lang="EN-US" style="font-family: Arial;">GPS</span><span style="font-family: 宋体;">平台，我们推崇的是面向服务开发，所以不可避免的要使用</span><span lang="EN-US" style="font-family: Arial;">RMI</span><span style="font-family: 宋体;">，而</span><span lang="EN-US" style="font-family: Arial;">Spring</span><span style="font-family: 宋体;">很容易将一个</span><span lang="EN-US" style="font-family: Arial;">Service</span><span style="font-family: 宋体;">类，转换成一个远程</span><span lang="EN-US" style="font-family: Arial;">RMI</span><span style="font-family: 宋体;">调用接口，开通接口服务。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">有了</span><span lang="EN-US" style="font-family: Arial;">Spring</span><span style="font-family: 宋体;">框架，我们就可以专心致志的规划我们的服务了，而不用关心是远程调用还是本地调用的底层机制了。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">同时</span><span lang="EN-US" style="font-family: Arial;">Spring</span><span style="font-family: 宋体;">的面向接口开发，天然不自觉的是我们的程序具备了初级的可扩展性。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">如地图</span><span lang="EN-US" style="font-family: Arial;">API</span><span style="font-family: 宋体;">服务，我们可能用</span><span lang="EN-US" style="font-family: Arial;">Java</span><span style="font-family: 宋体;">通过</span><span lang="EN-US" style="font-family: Arial;">http</span><span style="font-family: 宋体;">请求后台调用百度地图的</span><span lang="EN-US" style="font-family: Arial;">API</span><span style="font-family: 宋体;">来逆向地理解析，也可以用高德或谷歌的，那我们就规划一个</span><span lang="EN-US" style="font-family: Arial;">LocationService, </span><span style="font-family: 宋体;">定义这个服务提供加偏、地址转换等功能。至于服务是如何实现的，调用者不用关心。</span><span lang="EN-US" style="font-family: Arial;"> &nbsp;</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
<p align="left" class="MsoNormal"><span lang="EN-US" style="font-family: Arial;">&nbsp; &nbsp;&nbsp;</span><span style="font-family: 宋体;">当然了在</span><span lang="EN-US" style="font-family: Arial;">Spring</span><span style="font-family: 宋体;">中，也非常享受工厂模式的灵活运用，通过在配置文件中配置。我们可以根据调用参数不同，生产出不同的接口类，如一个终端数据包上来，可能是部标</span><span lang="EN-US" style="font-family: Arial;">808</span><span style="font-family: 宋体;">协议，也可能是</span><span lang="EN-US" style="font-family: Arial;">DB44</span><span style="font-family: 宋体;">，也可能厂商自定义协议，我们可以根据</span><span lang="EN-US" style="font-family: Arial;">spring</span><span style="font-family: 宋体;">的配置，调用不同的解析插件来进行解析。让整个代码结构都显得简洁有气质。</span><span lang="EN-US" style="font-size: 9pt; font-family: Arial;"><o:p></o:p></span></p>
</div>
<div>基于SpringMVC框架技术的GPS平台，可以参见：<a href="http://www.jt808.com/?p=939" rel="bookmark" style="margin: 0px; padding: 0px; color: rgb(38, 38, 38); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(223, 223, 223); line-height: 24px; font-family: Georgia, Arial, Helvetica, sans-serif; font-size: 2em; text-transform: capitalize;">基于Spring4+SpringMVC4+Mybatis4+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台</a></div>
<div>&nbsp;</div>
<div>具体功能说明，参见：<strong><span style="font-size:14px;"><a href="http://www.jt808.com/?p=670" style="margin: 0px; padding: 4px 0px 4px 18px; color: rgb(213, 78, 33); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(229, 229, 229); width: 280px; font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; display: inline !important; background-image: url(&quot;images/icons/bullet.png&quot;); background-position: 0px -80px; background-repeat: no-repeat;" title="GPS部标监控平台的功能设计(一)-功能列表">GPS部标监控平台的功能设计(一)-功能列表</a></span></strong></div>
<div>
<p align="justify" class="MsoNormal" style="margin: 0px 0px 10px; padding: 0px; color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; text-align: justify;">完备的开发手册</p>
<p align="justify" class="MsoNormal" style="margin: 0px 0px 10px; padding: 0px; color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; text-align: justify;"><img alt="部标监控平台开发手册" height="327" src="http://www.jt808.com/wp-content/uploads/document.PNG" style="margin: 0px; padding: 0px; border: none;" width="302" /></p>
<p align="justify" class="MsoNormal" style="margin: 0px 0px 10px; padding: 0px; color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; text-align: justify;">&nbsp;</p>
<p align="justify" class="MsoNormal" style="margin: 0px 0px 10px; padding: 0px; color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; text-align: justify;">数据字典：</p>
<p align="justify" class="MsoNormal" style="margin: 0px 0px 10px; padding: 0px; color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; text-align: justify;"><img alt="部标监控平台数据字典" height="392" src="http://www.jt808.com/wp-content/uploads/pdm.PNG" style="margin: 0px; padding: 0px; border: none;" width="1088" /></p>
<p align="justify" class="MsoNormal" style="margin: 0px 0px 10px; padding: 0px; color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; text-align: justify;">&nbsp;</p>
</div>
<div>&nbsp;</div>
<div>主界面:</div>
<div><span style="font-size:14px;"><br />
	</span></div>
<div><span style="font-size:14px;">&nbsp;&nbsp;</span><img src="http://images.cnitblog.com/blog2015/304499/201504/090911586804001.png" /></div>
<div>&nbsp;</div>
<div>2.实时车辆状态树</div>
<div>&nbsp;</div>
<div><img alt="" src="http://www.jt808.com/wp-content/uploads/vehicleTree.PNG" /></div>
<div>3.丰富的地图功能</div>
<div>&nbsp; 1）支持百度、高德和四维三种地图，其中，高德地图和四维地图是部标检测时要求必须要选用其一的地图；</div>
<div>&nbsp;&nbsp;<img alt="百度地图高德地图四维地图" height="243" src="http://www.jt808.com/wp-content/uploads/maptype.png" width="462" /></div>
<div>&nbsp; 2) &nbsp;圆形、矩形、多边形电子围栏标注，线路支持分段限速；</div>
<div>&nbsp; 3）车辆地图图标支持后台风格选择，目前支持Arrow和Car两种模式，根据车辆的行驶状态，变换成不同的颜色；</div>
<div>&nbsp;&nbsp;<img alt="" height="228" src="http://www.jt808.com/wp-content/uploads/arrow.PNG" width="335" /><img alt="" height="200" src="http://www.jt808.com/wp-content/uploads/car.PNG" width="298" /><img alt="" height="49" src="http://www.jt808.com/wp-content/uploads/vehicleIconType.PNG" width="424" /></div>
<div>&nbsp; 4) 基于模版定制车辆信息窗口</div>
<div>&nbsp;</div>
<div>4.充分支持jt/t808 2013协议中的全部协议栈</div>
<div><img alt="" height="699" src="http://www.jt808.com/wp-content/uploads/command.png" width="280" /></div>
<div>&nbsp;</div>
<div>5.丰富的报表支持</div>
<div>&nbsp;</div>
<div><img alt="交通部部标监控平台808服务器" src="http://www.jt808.com/wp-content/uploads/gpsui(2).png" /></div>
<div>6.强大的系统配置功能，通过系统配置，可以灵活适用于各种场景的支持。</div>
<div>&nbsp;</div>
<div>7。基于saas模式的平台架构，支持多企业，多部门的架构，企业和部门可以独立设定角色。</div>
<div><img alt="" height="576" src="http://www.jt808.com/wp-content/uploads/role.PNG" width="591" /></div>
<p> (13495)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=522</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GMap.NET开发技巧（十一）-使用百度地图</title>
		<link>http://www.jt808.com/?p=289</link>
		<comments>http://www.jt808.com/?p=289#comments</comments>
		<pubDate>Sun, 27 Jan 2013 16:25:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GPS系统]]></category>
		<category><![CDATA[百度地图]]></category>
		<category><![CDATA[百度地图纠偏加偏]]></category>

		<guid isPermaLink="false">http://www.ltmonitor.com/blog/?p=289</guid>
		<description><![CDATA[本章介绍一下，是如何在GMap.NET 使用百度地图的具体方法和代码介绍等。 当然使用百度地图，面临的难题不仅 [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="" height="129" src="http://www.ltmonitor.com/blog/wp-content/uploads/baidu.gif" width="270" />本章介绍一下，是如何在GMap.NET 使用百度地图的具体方法和代码介绍等。</p>
<p>当然使用百度地图，面临的难题不仅与此，还需要解决百度地图的偏移问题，我们当然不希望去调用百度地图SDK提供的HTTP接口，那是很愚蠢的，因为</p>
<p>要面临远程HTTP调用的不确定性，客户需要的是确定的结果，程序也是如此。</p>
<p>所以我们提供了百度地图的纠偏和加偏的算法源码库，参见文章：<span style="font-size:18px;"><a href="http://www.jt808.com/?p=552">-百度谷歌地图服务算法库</a></span></p>
<p>如果要使用百度地图，必须将初始化代码改成下面的这样：</p>
<pre class="brush:other">this.MainMap.Position = new PointLatLng(double.Parse(ConfigurationManager.AppSettings[&quot;defaultLat&quot;]), 
                                                        double.Parse(ConfigurationManager.AppSettings[&quot;defaultLng&quot;]));

                this.MainMap.MapProvider.Area = new RectLatLng(30.981178, 105.351914, 2.765142, 4.120995);
                this.MainMap.BoundsOfMap = new RectLatLng(30.981178, 105.351914,  2.765142, 4.120995);
                this.MainMap.Manager.Mode = AccessMode.CacheOnly;
                this.MainMap.MapProvider = GMapProviders.BaiduMapProvider;//或BaiduSateliteMapProvider
                this.MainMap.DragButton = MouseButton.Left;
                this.MainMap.Zoom = 13;
                this.MainMap.MinZoom = 8;
                this.MainMap.MaxZoom = 24;</pre>
<p>GMapProvider 是地图数据源的接口。</p>
<p>当初始化调用this.MainMap.MapProvider = GMapProviders.BaiduMapProvider的时候，</p>
<p>就会根据不同地图的不同规则进行加载数据，下面就以百度地图为例说明如何扩展一个地图数据源的接口等。</p>
<p><strong>1).BaiduMapProviderBase</strong></p>
<p>BaiduMapProviderBase继承GMapProvider类。</p>
<p>地图分为卫星和普通地图两种模式，所以需要定义一些公用方法来调用。</p>
<p>&nbsp;</p>
<pre class="brush:other">public abstract class BaiduMapProviderBase : GMapProvider
    {
        public BaiduMapProviderBase()
        {
            MaxZoom = null;
            RefererUrl = &quot;http://map.baidu.com&quot;;
            Copyright = string.Format(&quot;&copy;{0} Baidu Corporation, &copy;{0} NAVTEQ, &copy;{0} Image courtesy of NASA&quot;, DateTime.Today.Year);    
        }

        public override PureProjection Projection
        {
            get { return MercatorProjection.Instance; }
        }

        GMapProvider[] overlays;
        public override GMapProvider[] Overlays
        {
            get
            {
                if (overlays == null)
                {
                    overlays = new GMapProvider[] { this };
                }
                return overlays;
            }
        }
    }</pre>
<p><strong>2).<strong>BaiduMapProvider</strong></strong></p>
<p>BaiduMapProvider 是继承于BaiduMapProviderBase，并实现GetTileImage方法。</p>
<p>GetTileImage 的用途是根据当前的鼠标信息pos和缩放比zoom获取图片的方法。</p>
<pre class="brush:other">public class BaiduMapProvider : BaiduMapProviderBase
    {
        ....public override PureImage GetTileImage(GPoint pos, int zoom)
        {
            string url = MakeTileImageUrl(pos, zoom, LanguageStr);

            return GetTileImageUsingHttp(url);
        }

        string MakeTileImageUrl(GPoint pos, int zoom, string language)
        {
            zoom = zoom - 1;
            var offsetX = Math.Pow(2, zoom);
            var offsetY = offsetX - 1;

            var numX = pos.X - offsetX;
            var numY = -pos.Y + offsetY;

            zoom = zoom + 1;
            var num = (pos.X + pos.Y)%8 + 1;
            var x = numX.ToString().Replace(&quot;-&quot;, &quot;M&quot;);
            var y = numY.ToString().Replace(&quot;-&quot;, &quot;M&quot;);

            //http://q3.baidu.com/it/u=x=721;y=209;z=12;v=014;type=web&amp;fm=44
            string url = string.Format(UrlFormat, num, x, y, zoom, &quot;014&quot;, &quot;web&quot;, &quot;44&quot;);
            Console.WriteLine(&quot;url:&quot; + url);
            return url;
        }

        static readonly string UrlFormat = &quot;http://q{0}.baidu.com/it/u=x={1};y={2};z={3};v={4};type={5}&amp;fm={6}&quot;;
        
    }


</pre>
<p> (25215)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=289</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GMap.NET开发技巧(四)-GPS百度地图坐标偏移及地图加偏和逆向纠偏解决方法和代码</title>
		<link>http://www.jt808.com/?p=153</link>
		<comments>http://www.jt808.com/?p=153#comments</comments>
		<pubDate>Tue, 09 Oct 2012 06:01:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GPS系统]]></category>
		<category><![CDATA[GMap.NET]]></category>
		<category><![CDATA[百度地图]]></category>
		<category><![CDATA[百度地图纠偏加偏]]></category>
		<category><![CDATA[谷歌地图]]></category>

		<guid isPermaLink="false">http://www.ltmonitor.com/blog/?p=153</guid>
		<description><![CDATA[很多国内开发者使用GMap.NET开发地图应用程序，非常方便，可是在实际应用中傻眼了，因为GPS坐标的位置在谷 [...]]]></description>
			<content:encoded><![CDATA[<p>很多国内开发者使用GMap.NET开发地图应用程序，非常方便，可是在实际应用中傻眼了，因为GPS坐标的位置在谷歌和百度地图上出现了严重的便宜，这个是要了命的，地图应用就是要给别人一个精确的Location，解决不了偏差，前面的开发都是白费。但是GMap.NET只是一个对瓦片操作和客户端GDI输出的操作进行了较好的封装，对于有中国特色的国情，跟人家八竿子打不着。所以在有人给GMap.NET的作者提过，但是没有解决。</p>
<p>这和GMap.NET没有关系， 在中国商业地图数据提供和服务提供商，都必须要到国家测绘管理部门，进行评审通过后才能在大陆发布，谷歌地图也也一样。地图服务器商都需将<span style="color: rgb(17, 17, 17); font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 21px; white-space: pre-wrap; ">真实坐标的电子地图，加密成火星地图和火星坐标。</span>GPS导航设备生产制造商也需要这样做。<span style="color: rgb(17, 17, 17); font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 21px; white-space: pre-wrap; ">所以就出现了</span>GPS坐标在基于<span style="color: rgb(17, 17, 17); font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 21px; white-space: pre-wrap; ">WGS84坐标系统的</span>地图上显示出现坐标偏移，误差很大很严重，而且不是线性的，网上有人给出算法公式，都是胡说八道，根本不好用，更离谱的还要根据不同的城市，进行不同的加偏，还有的提供了一个加偏数据库，瞎扯淡。</p>
<p>所以偏移其实给地图一点关系都没有，管你是谷歌、百度还是搜狐地图，只要对GPS坐标进行加偏和纠偏处理就能够解决这个问题。</p>
<p>为了解决GMap.NET的谷歌和百度地图坐标偏移的问题，我就开发了一个纠偏和加偏的算法和动态库给开发者来使用，直接在.NET的工程项目中调用转换方法即可，绝对好用，在谷歌和百度地图上，车辆行驶的轨迹和地图的道路是严丝合缝的吻合的。<span style="color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px;">百度地图、谷歌地图、高德地图、四维地图、GPS终端设备坐标直接可以灵活互转，再也不用受限于远程调用http接口的性能损失和网络中断的麻烦。</span></p>
<h3 style="color:blue;"><a href="http://www.jt808.com/?p=552"><span style="color:#000080;"><strong><u>需要购买C# .netframework2.0 离线版 DLL 的300元 算法源码600元(Java或者C#语言可选），包含原始坐标加偏和逆向纠偏还原成原始坐标。提供火星坐标和百度坐标两种接口，不是数据库，提供的是算法源码，实时解析，需要的可以直接联系我(</u></strong></span><strong style="color: rgb(34, 34, 34); font-size: 16px;"><u><span style="color: rgb(0, 0, 0); font-family: 'lucida Grande', Verdana, 'Microsoft YaHei'; line-height: 18px;">2379423771@qq.com</span></u></strong><span style="color:#000080;"><strong><u>)购买。</u></strong></span></a></h3>
<p>直接转换，不需要数据库，更不用拆半和二分查询等影响性能的东西。算法库描述参我的文章:<span style="color:#f00;"><a href="http://www.jt808.com/?p=552"><span style="font-family: Georgia, Arial, Helvetica, sans-serif; font-size: 2em; text-transform: capitalize;">地图服务算法库</span></a></span></p>
<p><a href="http://www.jt808.com/?p=552" style="margin: 0px; padding: 0px; color: rgb(0, 94, 172); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(223, 223, 223); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px;"><img alt="GPS算法服务库Demo" src="http://www.ltmonitor.com/blog/wp-content/uploads/2011/08/Download-17.png" style="margin: 0px; padding: 0px; border: none;" />GPS算法服务库Demo 已下载 91 次</a></p>
<p>开发说明（开发环境是.NET 4 C#)&nbsp;</p>
<pre class="brush:csharp">   double latitude = 38.123;
   double longitude = 124.5;
  //单个坐标转换
  GpsPoint gp = MapFix.Fix(latitude, longitude);   
  //批量转换
  List&lt;GpsPoint&gt; needTransformGpsPoints;
  List&lt;GpsPoint&gt; gpsPoints = MapFix.Fix(needTransformGpsPoints);

</pre>
<p><img alt="" height="165" src="http://www.ltmonitor.com/blog/wp-content/uploads/gmapfix.JPG" width="587" /></p>
<pre class="brush:csharp"></pre>
<pre class="brush:csharp"></pre>
<p>运行效果图如下图所示，在GPS监控平台上，运行轨迹和谷歌地图道路非常吻合，精确度非常高。如需购买完整的交通部部标GPS车辆监控平台,可以联系我2379423771@qq.com。</p>
<h3 style="margin: 0px; padding: 0px; font-size: 14px; font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; white-space: normal; color: red;">Java平台，参见：<a href="http://www.jt808.com/?p=522" style="margin: 0px; padding: 0px; color: rgb(0, 94, 172); text-decoration: none;"><span style="margin: 0px; padding: 0px;">基于<span style="margin: 0px; padding: 0px; color: rgb(92, 121, 144); font-family: Georgia, Arial, Helvetica, sans-serif; text-transform: capitalize;">Struts+Spring+Hibernate+Ibatis+Quartz+Mina框架构建部标监控平台</span></span></a></h3>
<p style="margin: 0px 0px 10px; padding: 0px; color: rgb(51, 51, 51); font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; line-height: 24px; white-space: normal;">.NET平台，参见：<a href="http://www.jt808.com/?p=665" rel="bookmark" style="margin: 0px; padding: 0px; color: rgb(38, 38, 38); text-decoration: none; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: rgb(223, 223, 223); font-family: Georgia, Arial, Helvetica, sans-serif; font-size: 2em; text-transform: capitalize;">基于Asp.NET MVC构建GPS部标平台 </a></p>
<p><img alt="" height="347" src="http://www.ltmonitor.com/blog/wp-content/uploads/hisroute2d.JPG" width="594" /></p>
<p><img alt="" height="647" src="http://www.ltmonitor.com/blog/wp-content/uploads/hisroute.JPG" width="883" /></p>
<p> (73489)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jt808.com/?feed=rss2&#038;p=153</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
	</channel>
</rss>
