完成了这个记录一下
webbroser放在Mapform里面,Mapform放在Form1里面
//经纬度放在Form1里面
MapForm mapf_;
private void sendLocation(double longi, double lati)//传送经纬度
{
if (mapf_.webBrowser1.InvokeRequired)
{
//object[] objects = new object[2];
mapf_.longitude = longi;
mapf_.latitude = lati;
this.Invoke(new Action(() =>
{
//sendLocationCallBack sl = new sendLocationCallBack(sendLocation);
//mapf_.webBrowser1.Invoke(sl, new object[] { longitude, latitude });
mapf_.sendLocation();
}));
}
}
这里用到了跨线程调用
MapForm:
public void sendLocation()
{
object[] objects = new object[3];
objects[0] = longitude;
objects[1] = latitude;
objects[2] = showmapaddr;
//这里传入x、y的值,调用JavaScript脚本//传递object的值给html
webBrowser1.Document.InvokeScript("setLocation", objects);
//webBrowser1.Document .InvokeScript("setLocation", new Object[] { longitude, latitude });
}
html:
function setLocation(longitude, latitude, showmapaddr) {
var point = new BMap.Point(longitude, latitude);
map.centerAndZoom(point, 20);
addMarker(point);
infoWindow.setContent("火警" + showmapaddr);
map.openInfoWindow(infoWindow, point); //打开信息窗口
} //经纬度获取
function addMarker(point) {
var marker = new BMap.Marker(point);
map.addOverlay(marker);
}