您的位置:首页 > 其它

wpf获取gps数据在地图上显示定位

2017-04-13 11:00 507 查看
1.gps数据换算成正常经纬度值,

换算公式:GPS获取数据为 3958.472727,N,11619.957711,E

换算结果为N:39+58.472727/60 E:116+19.957711/60

2.利用百度或高德地图JSAPI编写html文件;

参考文件如下:

<!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=QXwuA2Zi8h3huVQvqVrW2MhU"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

<title>Dxgdisplay</title>
</head>
<body>
<div id="allmap"></div>

</body>
</html>

<script type="text/javascript">
try {

// 百度地图API功能
var map = new BMap.Map("allmap");            // 创建Map实例

//添加拖拽和缩放功能
map.enableScrollWheelZoom(true);
map.enableDragging();

//添加控件和比例尺
var top_right_control = new BMap.ScaleControl({ anchor: BMAP_ANCHOR_BOTTOM_LEFT });// 左下角,添加比例尺
var top_right_navigation = new BMap.NavigationControl({ anchor: BMAP_ANCHOR_BOTTOM_LEFT });  //左下角,添加默认缩放平移控件

map.addControl(top_right_control);
map.addControl(top_right_navigation);

//添加地图类型
var mapType1 = new BMap.MapTypeControl({ mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP] });
var mapType2 = new BMap.MapTypeControl({ anchor: BMAP_ANCHOR_TOP_LEFT });

//添加地图类型和缩略图

map.addControl(mapType1);          //2D图,卫星图
map.addControl(mapType2);          //左上角,默认地图控件

//创建点
//map.clearOverlays();
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 12);
//var marker = new BMap.Marker(point);  // 创建标注
//map.addOverlay(marker);               // 将标注添加到地图中

//根据IP定位城市
function myFun(result) {
var cityName = result.name;
map.setCenter(cityName);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);

//showalert(testmsg);

//对传入的经纬度进行标注:纬度,经度
// var Latt = 116.404;
// var Lott = 39.915;

// theLocation(Latt, Lott);
// testAlert();

// 用经纬度设置地图中心点
function theLocation(Longitude,Latitude) {

var gpsPoint = new BMap.Point(Longitude, Latitude);
//gps坐标纠偏
BMap.Convertor.translate(gpsPoint, 0, translateCallback);     //真实经纬度转成百度坐标
//map.clearOverlays();
//var new_point = new BMap.Point(Longitude,Latitude );
//var marker = new BMap.Marker(new_point);  // 创建标注
//map.addOverlay(marker);              // 将标注添加到地图中
//map.panTo(new_point);
//marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
}
// 用经纬度设置地图中心点
function testAlert(msg) {
var str = new String;
str =  msg.toString()
// str = "test"
alert(str);
}
function enableZoomDrag()
{
//添加拖拽和缩放功能
map.enableScrollWheelZoom(true);
map.enableDragging();
}
//坐标转换完之后的回调函数
translateCallback = function (point) {
map.clearOverlays();
var marker = new BMap.Marker(point);
map.addOverlay(marker);
map.setCenter(point);
//  marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
}
} catch (e) {
alert("地图加载失败,请检查网络!");
}
</script>


3.wpf中xmal中添加浏览器控件mapweb;

4.cs中添加如下代码

String sURL = "baiDuMap.html";
Uri uri = new Uri(sURL);
mapweb.Navigate(uri);
//地图加载坐标
mapweb.InvokeScript("theLocation", new Object[] { Jindd, Weidd });
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  地图 gps
相关文章推荐