C#实现百度地图附近搜索&调用JavaScript函数

前一篇文章“C#调用百度地图API入门&解决BMap未定义问题”讲述了如何通过C#调用百度API显示地图,并且如何解决BMap未定义的问题。这篇文章主要更加详细的介绍百度地图的一些功能,包括附近搜索、城市搜索、路线规划、添加覆盖物等等。

希望文章对你有所帮助!如果文章中有不足之处,还请海涵~

百度官方文档:http://developer.baidu.com/map/jsmobile.htm

官方DEMO例:http://developer.baidu.com/map/jsdemo-mobile.htm

源码下载地址:

目录:

一. C#显示百度地图

二. C#调用JavaScript中函数

三. C#显示百度地图附近搜索路线推荐

四. JavaScript百度地图代码详解

一. C#显示百度地图

使用V2012创建WinForm工程,界面如下图所示:

双击界面空白处,生出Form1_Load()函数,载入界面时显示百度图片。代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Security.Permissions;  //交互JS

namespace MapWinForms
{
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //载入加载地图
        private void Form1_Load(object sender, EventArgs e)
        {
            //本地文件 MapWinForms\bin\Debug
            string url = Application.StartupPath + "\\BaiMapJS.html";
            string file = "file:///E:\\WinFormBaiduMap\\test.html";
            webBrowser1.ScriptErrorsSuppressed = true;   //屏蔽js相关错误
            webBrowser1.Navigate(url);                   //导航显示本地HTML文件
        }
    }
}

本地工程路径"MapWinForms\bin\Debug"下存在JavaScript文件。其中申请百度地图AK密钥的方法参考前一篇文章,其中BaiMapJS.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;}
        #golist {display: none;}
        @media (max-device-width: 780px){#golist{display: block !important;}}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ui7X2CSu3ITjojARL4tILi5W1i9gkDVS"></script>
    <title>地图官网展示效果</title>
</head>
<body>
    <div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
	// 百度地图API功能
	var map = new BMap.Map("allmap");            // 创建Map实例
	var point = new BMap.Point(116.404, 39.915); // 创建点坐标
	map.centerAndZoom(point, 15);                // 初始化地图,设置中心点坐标和地图级别
	map.enableScrollWheelZoom();                 // 启用滚轮放大缩小
	map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
	map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
</script>  

运行结果如下图所示,JavaScript代码中建议使用你自己的AK。

同时解决BMap未定义参考前文

PS:写到此处,C#通过WebBrowser浏览器控件加载本地JS的方法已经实现。请不要推荐我的界面配色,从大一老师就说我的配色像HW。整篇文章的思路非常简单,感觉存在取巧的地方。当然Android也同样可以通过WebView控件实现。Android参考:

http://bbs.csdn.net/topics/390776139

http://www.cnblogs.com/tinyphp/p/3858997.html

http://blog.csdn.net/beyond0525/article/details/9374301

二. C#调用JavaScript中函数

这部分主要讲述C#调用HTML中JavaScript函数的过程,其中包括传递参数和无参数的情况。如下图所示,下拉菜单选择贵阳,然后城市定位结果如下。

其中"贵阳"就是传递的参数,C#中对应的代码是:

//城市搜索
private void button1_Click(object sender, EventArgs e)
{
    //C#调用JS函数
    string city;
    if (comboBox1.SelectedIndex == -1)
    {
        city = "北京";
    }
    else
    {
        city = comboBox1.SelectedItem.ToString();
    }
    webBrowser1.Document.InvokeScript("LoadMap", new object[] { city });
}

city为下拉菜单选择的结果,如果未选择则定位"北京"。调用JS的函数核心代码:

webBrowser1.Document.InvokeScript("LoadMap", new object[] { city });

其中InvokeScript中两个参数,"LoadMap"为html中的JavaScript函数,第二个为传递的参数city。如果无参数,则写"new object[] { }"即可。

BaiMapJS.html中函数如下:

// 定位城市
function LoadMap(city) {
	map.centerAndZoom(city, 12);                 // 初始化地图,设置中心点坐标和地图级别 15更详细
	map.enableScrollWheelZoom();                 // 启用滚轮放大缩小
	map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
	map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
}

参考资料:

http://bbs.csdn.net/topics/390935011

http://www.sufeinet.com/thread-7897-1-1.html

三. C#实现百度地图附近搜索路线推荐

完整C#代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

//新添加命名空间
using System.Net;
using System.IO;
using System.Security.Permissions;  //交互JS

namespace MapWinForms
{
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //载入加载地图
        private void Form1_Load(object sender, EventArgs e)
        {
            //本地文件 MapWinForms\bin\Debug
            string url = Application.StartupPath + "\\BaiMapJS.html";
            string file = <a target=_blank href="file:///E:\\WinFormBaiduMap\\test.html">file:///E:\\WinFormBaiduMap\\test.html</a>;
            webBrowser1.ScriptErrorsSuppressed = true;   //屏蔽js相关错误
            webBrowser1.Navigate(url);                   //导航显示本地HTML文件
        }

        //城市搜索
        private void button1_Click(object sender, EventArgs e)
        {
            /**
                * 参考资料:
                * http://bbs.csdn.net/topics/390935011
                * http://www.sufeinet.com/thread-7897-1-1.html
                */

            //C#调用JS函数
            string city;
            if (comboBox1.SelectedIndex == -1)
            {
                city = "北京";
            }
            else
            {
                city = comboBox1.SelectedItem.ToString();
            }
            webBrowser1.Document.InvokeScript("LoadMap", new object[] { city });
        }

        //车间搜索
        private void button2_Click(object sender, EventArgs e)
        {
            string city;
            if (comboBox1.SelectedIndex == -1)
            {
                city = "北京";
            }
            else
            {
                city = comboBox1.SelectedItem.ToString();
            }
            webBrowser1.Document.InvokeScript("SearchCarMap", new object[] { city });
        }

        //附近热点搜索
        private void button3_Click(object sender, EventArgs e)
        {
            string city;
            if (comboBox1.SelectedIndex == -1)
            {
                city = "北京";
            }
            else
            {
                city = comboBox1.SelectedItem.ToString();
            }
            string key;
            if (comboBox2.SelectedIndex == -1)
            {
                key = "学校";
            }
            else
            {
                key = comboBox2.SelectedItem.ToString();
            }
            webBrowser1.Document.InvokeScript("SearchNearbyMap", new object[] { city, key });
        }

        //当前位置定位
        private void button4_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("LocateMyPlcae", new object[] { });
        }

        //附近餐馆
        private void button5_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("GetResMyPlace", new object[] { });
        }

        //导航
        private void button6_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("RouteMyPlace", new object[] { });
        }
    }
}

其中JavaScript代码如下,即BaiMapJS.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;}
        #golist {display: none;}
        @media (max-device-width: 780px){#golist{display: block !important;}}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ui7X2CSu3ITjojARL4tILi5W1i9gkDVS"></script>
    <title>地图官网展示效果</title>
</head>
<body>
    <div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
	// 百度地图API功能
	var map = new BMap.Map("allmap");            // 创建Map实例
	var point = new BMap.Point(116.404, 39.915); // 创建点坐标
	map.centerAndZoom(point, 15);                // 初始化地图,设置中心点坐标和地图级别
	map.enableScrollWheelZoom();                 // 启用滚轮放大缩小
	map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
	map.addControl(new BMap.ScaleControl());     // 添加比例尺控件

	// 定位城市
	function LoadMap(city) {
		map.centerAndZoom(city, 12); // 初始化地图,设置中心点坐标和地图级别 15更详细
		map.enableScrollWheelZoom();                 // 启用滚轮放大缩小
		map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
		map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
	}	

	// 根据中心点关键字周边搜索
	function SearchNearbyMap(city, key) {
		map.centerAndZoom(city, 12);
		var point = new BMap.Point(104.083, 30.686); // 默认中心点
		var marker = new BMap.Marker(point);         // 计划调用自定义

		//清除覆盖物再加载,否则多次点击不断添加
		//map.removeOverlay(Overlay);                // 清除指定覆盖物
        map.clearOverlays();                         // 清除全部

		var local = new BMap.LocalSearch(map, {
			renderOptions:{map: map, autoViewport:true}
		});
		local.searchNearby(key, city);

		map.addControl(new BMap.NavigationControl()); //左上角控件
		map.enableScrollWheelZoom();                 // 启用滚轮放大缩小
		map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
		map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
	}

	// 根据中心点关键字周边搜索 停车场
	function SearchCarMap(city) {
		map.centerAndZoom(city, 12);
        map.clearOverlays();                         // 清除全部覆盖物再加载,否则多次点击不断添加
		var local = new BMap.LocalSearch(map, {
			renderOptions:{map: map, autoViewport:true}
		});
		local.searchNearby("停车场", city);

		map.addControl(new BMap.NavigationControl()); //左上角控件
		map.enableScrollWheelZoom();                 // 启用滚轮放大缩小
		map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
		map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
	}

    // 当前位置定位 北理 人民大学
    function LocateMyPlcae() {
    	map.clearOverlays();
    	var pointA_A = 116.32377;
    	var pointA_B = 39.967031;
    	var pointA = new BMap.Point(pointA_A, pointA_B);  

    	var pointB_A = 116.34964;
    	var pointB_B = 39.957990;
    	var pointB = new BMap.Point(pointB_A, pointB_B);
    	var pointC = new BMap.Point((pointA_A+pointB_A)/2,
    						(pointA_B+pointB_B)/2);
    	map.centerAndZoom(pointC, 15);

		var markerA = new BMap.Marker(pointA);
		var markerB = new BMap.Marker(pointB);
		// 将标注添加到地图中
		//map.addOverlay(markerA);
		//map.addOverlay(markerB);  

		// 创建标注1
		addMarker(pointA, "北京理工大学", "地址:北京理工大学11号学生公寓");
        // 创建标注2
    	addMarker(pointB, "北京交通大学", "地址:北京交通大学第一教学楼");          

    	// 开始测距 定义折线
    	var polyline = new BMap.Polyline([pointA, pointB], { strokeColor: "orange", strokeWeight: 6, strokeOpacity: 0.5 });
    	map.addOverlay(polyline);                       // 添加折线到地图上 

    	// 监听标注事件 获取两点距离,保留小数点后两位
    	polyline.addEventListener("click", function () {    //
        	alert('两地距离是:' +
        		(map.getDistance(pointA, pointB)).toFixed(2) + ' 米。');
    	});

		map.enableScrollWheelZoom();                 // 启用滚轮放大缩小
		map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
		map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
		map.addControl(new BMap.NavigationControl());
		map.addControl(new BMap.OverviewMapControl());

    }

    function GetResMyPlace() {
    	map.clearOverlays(); 

    	var pointA_A = 116.32377;
    	var pointA_B = 39.967031;
    	var pointA = new BMap.Point(pointA_A, pointA_B);  

    	var pointB_A = 116.34964;
    	var pointB_B = 39.957990;
    	var pointB = new BMap.Point(pointB_A, pointB_B); 

    	var pointC = new BMap.Point((pointA_A+pointB_A)/2,
    						(pointA_B+pointB_B)/2);
    	map.centerAndZoom(pointC, 15);
    	map.enableScrollWheelZoom();                 // 启用滚轮放大缩小

    	var markerA = new BMap.Marker(pointA);
		var markerB = new BMap.Marker(pointB);  

		// 创建标注1
		addMarker(pointA, "北京理工大学", "地址:北京理工大学11号学生公寓");
        // 创建标注2
    	addMarker(pointB, "北京交通大学", "地址:北京交通大学第一教学楼");          

    	// 开始测距 定义折线
    	var polyline = new BMap.Polyline([pointA, pointB], { strokeColor: "orange", strokeWeight: 6, strokeOpacity: 0.5 });
    	map.addOverlay(polyline);                       // 添加折线到地图上 

    	// 监听标注事件 获取两点距离,保留小数点后两位
    	polyline.addEventListener("click", function () {    //
        	alert('两地距离是:' +
        		(map.getDistance(pointA, pointB)).toFixed(2) + ' 米。');
    	});  

    	/*
    	var local = new BMap.LocalSearch(map, {
	  		renderOptions:{map: map}
		});
    	// 自己规定范围
		var bs = new BMap.Bounds(pointA, pointB);
		local.searchInBounds("餐馆", bs);
		*/

		var local = new BMap.LocalSearch(map, {
			renderOptions:{map: map}
		});
		local.search("餐馆");

		map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
		map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
		map.addControl(new BMap.NavigationControl());
		map.addControl(new BMap.OverviewMapControl());

    }

    // 导航
    function RouteMyPlace() {
    	map.clearOverlays(); 

    	var pointA_A = 116.32377;
    	var pointA_B = 39.967031;
    	var pointA = new BMap.Point(pointA_A, pointA_B);  

    	var pointB_A = 116.34964;
    	var pointB_B = 39.957990;
    	var pointB = new BMap.Point(pointB_A, pointB_B);
    	var pointC = new BMap.Point((pointA_A+pointB_A)/2,
    						(pointA_B+pointB_B)/2);
    	map.centerAndZoom(pointC, 15);
    	map.enableScrollWheelZoom();                 // 启用滚轮放大缩小

    	var markerA = new BMap.Marker(pointA);
		var markerB = new BMap.Marker(pointB);
    	map.addOverlay(markerA);
    	map.addOverlay(markerB);

		markerA.addEventListener("click", function(){
			/*start|end:(必选)
			{name:string,latlng:Lnglat}
			opts:
			mode:导航模式,固定为
			BMAP_MODE_TRANSIT、BMAP_MODE_DRIVING、
			BMAP_MODE_WALKING、BMAP_MODE_NAVIGATION
			分别表示公交、驾车、步行和导航,(必选)
			region:城市名或县名  给定region认为起点和终点都在同一城市,除非单独给定起点或终点城市
			origin_region/destination_region:同上
			*/
			var start = {
				 name:"北京理工大学"
			}
			var end = {
				name:"北京交通大学"
			}
			var opts = {
				mode:BMAP_MODE_DRIVING,
				region:"北京"
			}
			var ss = new BMap.RouteSearch();
			ss.routeCall(start,end,opts);
		});

		map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件
		map.addControl(new BMap.ScaleControl());     // 添加比例尺控件
		map.addControl(new BMap.NavigationControl());
		map.addControl(new BMap.OverviewMapControl());
    }

    // 自定义创建标注
    function addMarker(point, a, b) {
        var marker = new BMap.Marker(point);
        map.addOverlay(marker);
        marker.addEventListener("click", function () {    // 监听标注事件
            var opts = {         // 创建信息窗口
                width: 250,      // 信息窗口宽度
                height: 100,     // 信息窗口高度
                title: a         // 信息窗口标题
            }
            var infoWindow = new BMap.InfoWindow(b, opts);  // 创建信息窗口对象
            map.openInfoWindow(infoWindow, point);          // 打开信息窗口
        });
    }

</script>  

四. JavaScript百度地图代码详解

这部分主要详细讲解代码过程及运行截图。

1.加载百度地图

var map = new BMap.Map("allmap");               // 创建Map实例

var point = new BMap.Point(116.404, 39.915); // 创建点坐标

map.centerAndZoom(point, 15);        // 初始化地图,设置中心点坐标和地图级别

map.enableScrollWheelZoom();          // 启用滚轮放大缩小

map.addControl(new BMap.ZoomControl());      // 添加地图缩放控件

map.addControl(new BMap.ScaleControl());       // 添加比例尺控件

运行结果如下图所示:

它可以通过鼠标滚轮缩放地图,同时点击如"北京理工大学"(我母校)可以查看详细信息。

2.定位城市

主要通过函数map.centerAndZoom("南京", 12)实现,其中12表示地图显示大小级别。

function LoadMap(city) {

map.centerAndZoom(city, 12);

map.enableScrollWheelZoom();

map.addControl(new BMap.ZoomControl());      //
添加地图缩放控件

map.addControl(new BMap.ScaleControl());      //
添加比例尺控件

}

其中运行截图如上面第二部分的"贵阳",这里不在介绍。

3.根据中心点关键字周边搜索

主要参考:http://developer.baidu.com/map/jsdemo-mobile.htm#i1_2

function SearchNearbyMap(city,
key) {

map.centerAndZoom(city, 12);

var point = new BMap.Point(104.083, 30.686);// 默认中心点

var marker = new BMap.Marker(point);

// 清除覆盖物再加载,否则多次点击不断添加

//map.removeOverlay(Overlay);                // 清除指定覆盖物

map.clearOverlays();                                  // 清除全部

// 根据中心点关键字周边搜索核心代码

var local = new BMap.LocalSearch(map, {

renderOptions:{map: map, autoViewport:true}

});

local.searchNearby(key, city);

map.addControl(new BMap.NavigationControl()); //左上角控件

map.enableScrollWheelZoom();

map.addControl(new BMap.ZoomControl());

map.addControl(new BMap.ScaleControl());

}

运行结果如下图所示,热点我自定义包括:学校、景区、KTV、加油站、餐馆、旅店等。

4.根据中心点周边搜索停车场

主要调用local.searchNearby("停车场", city)即可实现,注意添加覆盖物前清除原有覆盖物。

function SearchCarMap(city) {

map.centerAndZoom(city, 12);

map.clearOverlays();

var local = new BMap.LocalSearch(map, {

renderOptions:{map: map, autoViewport:true}

});

local.searchNearby("停车场", city);

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

map.enableScrollWheelZoom();

map.addControl(new BMap.ZoomControl());

map.addControl(new BMap.ScaleControl());

}

运行结果如下图所示:

5.当前位置定位北理工到北交大

定义当前位置使用自定义函数添加覆盖物及信息框显示"北理地址"。

// 自定义创建标注

function addMarker(point, a, b) {

var marker = new BMap.Marker(point);

map.addOverlay(marker);

marker.addEventListener("click", function () {    // 监听标注事件

var opts = {        // 创建信息窗口

width: 250,        // 信息窗口宽度

height: 100,      // 信息窗口高度

title: a                // 信息窗口标题

}

// 创建信息窗口对象

var infoWindow = new BMap.InfoWindow(b, opts);

map.openInfoWindow(infoWindow, point);        // 打开信息窗口

});

}

运行结果如下图所示:

你可以看到在北理和北交之间绘制一条直线,同时点击直线返回距离。通过获取北理PointA的经纬度,北交PointB的经纬度,然后显示添加两个覆盖物,地图中心设置为两个学校的中心点PointC。

// 定位北理和北交核心代码:

function LocateMyPlcae() {

map.clearOverlays();

var pointA_A = 116.32377;

var pointA_B = 39.967031;

var pointA = new BMap.Point(pointA_A, pointA_B);

var pointB_A = 116.34964;

var pointB_B = 39.957990;

var pointB = new BMap.Point(pointB_A, pointB_B);

var pointC = new BMap.Point((pointA_A+pointB_A)/2,

(pointA_B+pointB_B)/2);

map.centerAndZoom(pointC, 15);

var markerA = new BMap.Marker(pointA);

var markerB = new BMap.Marker(pointB);

// 将标注添加到地图中 官方方法

//map.addOverlay(markerA);

//map.addOverlay(markerB);

// 创建标注1 自定义方法

addMarker(pointA, "北京理工大学", "地址:北京理工大学11号学生公寓");

// 创建标注2 自定义方法

addMarker(pointB, "北京交通大学", "地址:北京交通大学第一教学楼");

// 开始测距 定义折线

var polyline = new BMap.Polyline([pointA, pointB],

{ strokeColor: "orange", strokeWeight: 6, strokeOpacity: 0.5 });

// 添加折线到地图上

map.addOverlay(polyline);

// 监听标注事件 获取两点距离,保留小数点后两位

polyline.addEventListener("click", function () {

alert(‘两地距离是:‘ +

(map.getDistance(pointA, pointB)).toFixed(2) + ‘ 米。‘);

});

map.enableScrollWheelZoom();                        // 启用滚轮放大缩小

map.addControl(new BMap.ZoomControl());    // 添加地图缩放控件

map.addControl(new BMap.ScaleControl());    // 添加比例尺控件

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

map.addControl(new BMap.OverviewMapControl());

}

运行结果如下所示:

6.定位北理工大北交大附近餐馆

对应JavaScript代码中GetResMyPlace()函数,在5的基础上增加代码:

var local = new BMap.LocalSearch(map, {

renderOptions:{map: map}

});

local.search("餐馆");

运行结果如下图所示:

7.百度地图路线导航

百度地图导航主要是调用浏览器进行,需要点击北京理工大学,选为起点,然后会推荐路线。核心代码如下所示:

// 导航

function RouteMyPlace() {

map.clearOverlays();

var pointA_A = 116.32377;

var pointA_B = 39.967031;

var pointA = new BMap.Point(pointA_A, pointA_B);

var pointB_A = 116.34964;

var pointB_B = 39.957990;

var pointB = new BMap.Point(pointB_A, pointB_B);

var pointC = new BMap.Point((pointA_A+pointB_A)/2,

(pointA_B+pointB_B)/2);

map.centerAndZoom(pointC, 15);

map.enableScrollWheelZoom();

var markerA = new BMap.Marker(pointA);

var markerB = new BMap.Marker(pointB);

map.addOverlay(markerA);  // map方法添加覆盖物

map.addOverlay(markerB);

markerA.addEventListener("click", function(){

/*start|end:(必选)

{name:string, latlng:Lnglat}

opts:

mode:导航模式,固定为

BMAP_MODE_TRANSIT、BMAP_MODE_DRIVING、

BMAP_MODE_WALKING、BMAP_MODE_NAVIGATION

分别表示公交、驾车、步行和导航,(必选)

region:城市或县名 给定region时,认为起点和终点都在同一城市,

除非单独给定起点或终点的城市

origin_region/destination_region:同上

*/

var start = {

name:"北京理工大学"

}

var end = {

name:"北京交通大学"

}

var opts = {

mode:BMAP_MODE_DRIVING,

region:"北京"

}

var ss = new BMap.RouteSearch();

ss.routeCall(start,end,opts);

});

map.addControl(new BMap.ZoomControl());

map.addControl(new BMap.ScaleControl());

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

map.addControl(new BMap.OverviewMapControl());

}

其中推荐路线如下图所示,你自己也可以做些相关研究。



PS:最后希望文章对你有所帮助!这篇文章主要是一些在线笔记和入门介绍,非常基础的内容,详细知识参考百度地图官方文档。

虽然Android百度地图我也研究过,但是由于网络问题、Android环境我不太熟悉(电脑太卡啦),随意导致做了一些C#调用WebBrowser浏览器控件加载本地的JS文件的技巧,当然Android也可以通过WebView控件实现。

(By:Eastmount 2016-05-15 深夜2点半  http://blog.csdn.net/eastmount/ )





时间: 2024-10-19 14:56:22

C#实现百度地图附近搜索&调用JavaScript函数的相关文章

百度地图地点搜索和鼠标点击地点获取经纬度

百度地图地点搜索和鼠标点击地点获取经纬度,这些都是地图比较基本 效果图:如下 代码部分: <!DOCTYPE html><html>    <head>    <meta charset="utf-8">    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?

好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系方式地址等数据,这便成为很多人的便捷方式.但是一个个地复制出来商家的电话,地址是一件很痛苦的事情, 于是想到开发一个程序,模拟人的操作,将所有的数据提取保存到EXCEL里. 交流学习QQ:3125547039 主要代码思路: m_objConnection.Open();             b

WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现

原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有其它途径.但鉴于咱是搞 .NET技术的,首先其冲想到的微软WPF方面,之前对WPF的了解与学习也只是停留在比较浅的层面,没有进一步深入学习与应用.所以在项目接来以后,也就赶鸭子上架了,经过

VC与JavaScript交互(三) ———— CWebPage类调用javascript函数(给js函数传参,并取得返回值)

①需要一个别人写好的类CWebPage,将其对于的两个文件WebPage.h和WebPage.cpp添加到工程中. ②添加WebBrowser控件,在视图/对话框类的头文件中#include "webbrowser2.h",增加成员变量m_webBrowser,调用Navigate()函数加载一个html页面. ③在对话框或者视图的实现文件中,加入#include "WebPage.h",在按钮的响应函数中就可以调用javascript函数了,具体代码如下: CWe

VC/MFC中通过CWebPage类调用javascript函数(给js函数传参,并取得返回值)

转自:http://www.cnblogs.com/javaexam2/archive/2012/07/14/2632959.html ①需要一个别人写好的类CWebPage,将其对于的两个文件WebPage.h和WebPage.cpp添加到工程中. CWebPage类头文件和实现文件下载地址: http://download.csdn.net/detail/masikkk/4427190 ②添加WebBrowser控件,在视图/对话框类的头文件中#include "webbrowser2.h&

Android 百度地图 热点搜索(二)

1.相关接口及方法: ①  OnGetPoiSearchResultListener接口  搜索结果监听 OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){ public void onGetPoiResult(PoiResult result){ //获取POI检索结果 } public void onGetPoiDetailResult(PoiDetailResult result){

百度地图API快速调用,一键生成百度地图

对于在网站或者网页之内插入百度地图插件,可能很多编程技术人员都知道如何来做,但是做起来所花费的时间都比较长,那么下面跟大家分享一下如何快速调用百度地图API,一件生成百度地图的方法,这种方法适用于任何的编程语言,所以有兴趣的编程开发者可以保存一下.body之间源代码如下:<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true&quo

iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)

通过调用设备自带的浏览器,打开百度地图 1 // 1.定义一个方法,用来打开谷歌地图的功能 2 -(IBAction)openMaps 3 { 4 // 2.定义一个字符串,作为百度地图的当前地理位置 废弃 5 NSString *addressTest = @""; 6 // 3.请求网址路径中,如果包含中文的话,会出现请求不成功的情况.这是需要将中文参数转为美国标准信息交换代码. 7 addressTest = [addressTest stringByAddingPercentE

百度地图路线搜索

public class MainActivity extends MapActivity {       private MapView mapView;//百度地图的相关控件     private BMapManager bMapManager;//加载地图的引擎     private String keyString = "04763B1D8C925195965E838C6E59DB767DAE4BA7";//百度地图的key     private MapControlle