WebBrowser操作百度地图API小DEMO
最近填了不少的坑,例如搭建arcgis api for
java的环境,需要用32bit的JDK,如果连接数据库需要安装32bit的client,另外还需要把arcgis的路径写入path里面。SDE的离线导入用oracle的dmp格式会出错,找不到离线解决方案的情况下重新导入了,但是又面临着数据ID改变,数据中0和NULL的改变等,是SDE数据导入中产生的一系列问题。现在解决了,于是有空整理了一下自己的桌面,发现自己写过一个用C#中的webBrowser来操作百度地图api
for JavaScript的一个很简单的DEMO,所以在这里记录一下,让以后的自己看看现在的我有多渣,(逃
内容很简单,首先要准备一个html文件,话说这个文件直接从百度地图API那里的教程拿来的,非常简单,可以自己下载一个玩玩,或者直接复制下面的代码就得了,我这里的标点都是写进去的,其实可以传入参数,有兴趣可以继续改进:
body, html,#allmap {width: 100%;height: 100%;overflow:
hidden;margin:0;font-family:"微软雅黑";}
// 百度地图API功能
var map = new BMap.Map("allmap");
// 创建Map实例
map.centerAndZoom(new BMap.Point(118.454, 32.955), 6);
// 初始化地图,设置中心点坐标和地图级别
map.addControl(new BMap.MapTypeControl());
//添加地图类型控件
map.setCurrentCity("北京");
// 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true);
//开启鼠标滚轮缩放
addMarker(116.400,39.910);
var myIcon = new
BMap.Icon("http://lbsyun.baidu.com/jsdemo/img/fox.gif", new
BMap.Size(300,157));
// 编写自定义函数,创建标注
function addMarker(x,y)
{
var point = new BMap.Point(x,y);
var marker2 = new BMap.Marker(point,{icon:myIcon});
// 创建标注
map.addOverlay(marker2);
// 将标注添加到地图中
}
// 编写自定义函数,点
function addLine()
{
var beijingPosition=new
BMap.Point(116.432045,39.910683),
hangzhouPosition=new BMap.Point(120.129721,30.314429),
taiwanPosition=new BMap.Point(121.491121,25.127053);
var points = [beijingPosition,hangzhouPosition,
taiwanPosition];
var curve = new BMapLib.CurveLine(points, {strokeColor:"blue",
strokeWeight:3, strokeOpacity:0.5}); //创建弧线对象
map.addOverlay(curve); //添加到地图中
curve.enableEditing(); //开启编辑功能
}
接下来就是写一个.NET程序来操作这个html文件了,也非常地简单,首先要在初始化时加载这个html程序:
webBrowser1.Navigate(System.Environment.CurrentDirectory.ToString()
+ @"\BaiDuHtml\BaiDuMap.html");
然后就可以通过 webBrowser对象来传参数进入调用JS代码了:
double x =
double.Parse(X.Text);
double y =
double.Parse(Y.Text);
webBrowser1.Document.InvokeScript("addMarker",
new object[] { x, y });
效果如下: