水产养殖中小船轨迹监控方案

来源:互联网 发布:数据ev值是什么意思 编辑:程序博客网 时间:2024/04/27 05:25

项目背景:在鱼塘检测中,测氧含量的机器比较昂贵,传统的情况是一个鱼塘分散式地多布置一些测氧含量的机器,来完成检测。现在我们提出的解决方案是:小船搭载测氧机按既定轨道运行,来实现多地点信息采集。为了监控小船的运行轨迹,小船配有GPS北斗,传输经纬度信号到PC主机,来实现运行轨迹的绘制。

 

自己造个轮子来绘制图像是不显示的,想到百度地图提供API,现在把问题简化到PC通过串口收到经纬度信号,波特率为9600,如何在web端百度地图中,显示当前的位置。

 

要想读串口数据,轻量级的JavaScript不能实现,选择面向对象的语言Java

要想绘制轨迹,需要保存历史的经纬度数据,这需要数据库来实现;

 

这里提供GPS坐标转成百度坐标的代码

来源:http://developer.baidu.com/map/jsdemo.htm#a5_2


<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

<style type="text/css">

body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}

</style>

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

<title>GPS转百度</title>

</head>

<body>

<div id="allmap"></div>

</body>

</html>

<script type="text/javascript">

// 百度地图API功能

//GPS坐标

var xx = 120.397428;

var yy = 31.90923;

var gpsPoint = new BMap.Point(xx,yy);

 

//地图初始化

var bm = new BMap.Map("allmap");

bm.centerAndZoom(gpsPoint, 15);

bm.addControl(new BMap.NavigationControl());

 

//添加谷歌marker和label

var markergps = new BMap.Marker(gpsPoint);

bm.addOverlay(markergps); //添加GPS标注

var labelgps = new BMap.Label("我是GPS标注哦",{offset:new BMap.Size(20,-10)});

markergps.setLabel(labelgps); //添加GPS标注

 

//坐标转换完之后的回调函数

translateCallback = function (point){

var marker = new BMap.Marker(point);

bm.addOverlay(marker);

var label = new BMap.Label("我是百度标注哦",{offset:new BMap.Size(20,-10)});

marker.setLabel(label); //添加百度label

bm.setCenter(point);

alert(point.lng + "," + point.lat);

}

 

setTimeout(function(){

BMap.Convertor.translate(gpsPoint,0,translateCallback);     //真实经纬度转成百度坐标

}, 2000);

</script>



附录:百度提供鹰眼。



0 0