c#,winform调用百度地图及“BMap”未定义错误解决方案

版权声明:本文为博主原创文章,转载需注明出处 https://blog.csdn.net/skytruine/article/details/71599618


    今天在实验室写了一个测试程序:用c# winform 调用百度地图。一切都很顺利,运行程序地图能够正常显示。但是晚上回到寝室后,同样的程序运行时,却出现了“BMap”未定义的错误。费劲周折,花费了近两个小时才找到问题所在,并解决。

    首先说一下c#调用百度地图的基本思路:

   ①要有一个能显示百度地图的html文件,不论是在本地端还是服务器端;这里给出一个示例代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>c#与百度地图交互测试文件</title>
	<style type="text/css">
		body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
		#map{height:100%;width:100%;}
	</style>

	<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=mgRIjArNHuol074XjsyDPQMu7g22hEjZ"></script>
</head>
<body>
	<div id="map"></div>
</body>
</html>

<script type="text/javascript">
	// 创建一个地图用于显示
	var map = new BMap.Map("map");
	map.centerAndZoom(new BMap.Point(117.269945,31.86713), 13);
	map.enableScrollWheelZoom(true);
</script>

    ②其次要在winform中添加webBrowser控件,并设置其uri熟悉

 
 

using System; using System.Collections.Gener

ic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WebBrowser_test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.webBrowser1.Url = new Uri(@"A:\download_file\document\GitHub\iTravel_project\iTravel_other\iTravel_syf\WebBrowser_test\WebBrowser_test\bin\map.html"); } } }

    接着探讨“BMap”未定义错误原因与解决:

    大家的原因可能各有不同,http://blog.csdn.net/eastmount/article/details/51380996 中提及了各种情况值得参考,但是并没有快速精确地解决我的问题。

    上述链接内容启示我webBrowser调用的是ie浏览器,可能是由于ie浏览器无法正常浏览网页的原因造成的。我打开ie浏览器,输入www.baidu.com,发现的确不能访问网页,那么是不是解决了ie浏览器上网的问题我们的问题就解决了呢?http://www.iefans.net/a/357.html 中提供了ie和edge不能正常上网的一种解决方案——>问题出在局域网设置上:

     通过internet选项更改局域网设置,只保留自动检测设置,确认更改并应用。这样ie浏览器又可以正常使用了,之后测试程序,果然可以正常运行了。

扫描二维码关注公众号,回复: 3079675 查看本文章

     能够解决问题了,但是还需要推敲一下原因。在实验室时,用的是实验室的网线,处于局域网中,可能一旦处于局域网中,ie和edge浏览器就会自动更改局域网设置。回到寝室后,使用是公网,但此时ie和edge的局域网设置并没有自动更改,因此产生了问题。

     希望我的总结能对大家起到一定帮助。

猜你喜欢

转载自blog.csdn.net/skytruine/article/details/71599618