C# WFM调用百度地图

使用 WebBrower 浏览器空间调用百度地图 的方法

private void Form1_Load(object sender, EventArgs e)
{
try
{
//这个文件于可执行文件放在同一目录
webBrowser1.Url = new Uri(Path.Combine(Application.StartupPath, “BaiduMap.htm”));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, “异常”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

    需要定位时调用 
     webBrowser1.Document.InvokeScript("setLocation", new object[] { x, y, str });
     备注: x ,y 表示GPS定位的精度个纬度,Str 表示地图定位后,在地图上mark点上显示的文字信息

BaiduMap.htm 文件需要同编译后的EXE文件放在同一目录下。BaiduMap.htm 的代码如下

<!

>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>百度地图</title>
    <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=3.0&ak=4HBOfQKbSlpCSiAfzoowkclaDsIGD95A"></script>
 
</head>
<body>
    <div id="allmap">
    </div>
</body>
</html>
 
<script type="text/javascript">
    //alert("Hello World");
    var map = new BMap.Map("allmap");               // 创建Map实例
 
    var point = new BMap.Point(116.404, 39.915);    // 创建点坐标(经度,纬度)
    map.centerAndZoom(point, 18);                   // 初始化地图,设置中心点坐标和地图大小级别
   // map.addOverlay(new BMap.Marker(point));         // 给该坐标加一个红点标记
    //var traffic = new BMap.TrafficLayer();         // 创建交通流量图层实例     
	//map.addTileLayer(traffic);                     // 将图层添加到地图上   
    map.addControl(new BMap.NavigationControl());   // 添加平移缩放控件
    map.addControl(new BMap.ScaleControl());        // 添加比例尺控件
    map.addControl(new BMap.OverviewMapControl());  //添加缩略地图控件
    map.addControl(new BMap.MapTypeControl());      //添加地图类型控件
    map.setCurrentCity("北京");                     //设置地图显示的城市
													//4HBOfQKbSlpCSiAfzoowkclaDsIGD95A
    map.enableScrollWheelZoom();                    //启用滚轮放大缩小
     
    function setLocation(x,y,str)  //参数:经纬度
	{
			
        var point = new BMap.Point(x, y);  
		var marker = new  BMap.Marker(point);		 
		//map.centerAndZoom(point, 18);    
			// map.addOverlay(marker); 
			//		var opts = {    
			//			width : 0,     // 根据信息自动调整    
			//			height: 0,     // 信   
			//			title : str  // 信息窗口标题   
			//		}    
			//		var infoWindow = new BMap.InfoWindow(str, opts);  // 创建信息窗口对象    
			//		map.openInfoWindow(infoWindow, map.getCenter());      // 打开信息窗口

		//坐标转换完之后的回调函数
		translateCallback = function (data)
		{
			if(data.status === 0) 
			{
				var marker = new BMap.Marker(data.points[0]);
				map.addOverlay(marker);
				
				var label = new BMap.Label(str,{offset:new BMap.Size(20,-10)});
				marker.setLabel(label); //添加百度label
				map.setCenter(data.points[0]);
			}
		}

		setTimeout(function(){
			var convertor = new BMap.Convertor();
			var pointArr = [];
			pointArr.push(point);
			convertor.translate(pointArr, 1, 5, translateCallback)
		}, 500);
	
		map.enableScrollWheelZoom();                    //启用滚轮放大缩小
		
    }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值