先上图,效果如下:
新建一个html文件Map2.html,内容如下:
body, html, #allmap {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
}
//此处的div只是为了与winfrom进行数据交互使用,不显示出来
var map = new BMap.Map("allmap", { mapType: BMAP_HYBRID_MAP });
map.centerAndZoom("广州市",15);
map.enableScrollWheelZoom(); //启用滚轮放大缩小
map.enableContinuousZoom(); // 开启连续缩放效果
map.enableInertialDragging(); // 开启惯性拖拽效果
map.addControl(new BMap.MapTypeControl()); //添加地图类型控件
map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
map.addControl(new BMap.ScaleControl()); // 添加比例尺控件
var polyLines = new Array();//存放多边形的点
function GotoSepcialAddress(){ //定位到指定位置
map.centerAndZoom(document.getElementById("address").innerText,map.getZoom());
}
function MyMapZoom()
{
map.setZoom(document.getElementById("level").innerText);
}
var stCtrl = new BMap.PanoramaControl(); //构造全景控件
stCtrl.setOffset(new BMap.Size(20, 20));
map.addControl(stCtrl);//添加全景控件
在http://api.map.baidu.com/api?v=2.0&ak=XXXXXX中,ak为申请的一个密钥。
百度地图的API提供的地图缩放级别为3-18(数值越大越详细),分别对应如下比例:
{ "50m", "100m", "200m", "500m", "1km", "2km", "5km", "10km", "20km", "25km", "50km", "100km", "200km", "500km", "1000km", "2000km" };
级别3对应2000km,级别18对应50m.
在winfrom中添加一个控件,并添加如下代码
webBrowser1.Navigate(Path.Combine(Application.StartupPath, @"Map2.html"));
webBrowser1.ScriptErrorsSuppressed = false;
在界面中输入某个地址时候跳转到输入的地址的代码:
webBrowser1.Document.GetElementById("address").InnerText = tboxAddress.Text;//设置地址
webBrowser1.Document.InvokeScript("GotoSepcialAddress");//跳转
通过InvokeScript方法可以使得winfrom与html页面进行交互.