c# winform调用百度地图

winform百度地图接入教程

Byhollow

在百度地图接入方式中,我们选择JavaScript API大众版 V2.0.通过相关阅读我们可以写出一个html出来,以被winform中的WebBrowser控件所使用。

在此文件夹中已经给出map.html即为所需。此为之后所操作的地图模板。

如下:

<!DOCTYPE html>  

<html>  

<head>  

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />  

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

<title>Hello, World</title>  

<style type="text/css">  

html{height:100%}  

body{height:100%;margin:0px;padding:0px}  

#container{height:100%}  

</style>  

<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=xxQWNVG9TZfojtEeBC3WxEGv">

</script>

<script type="text/javascript">

 var x = 116.404, y = 39.915;

 function initdata(x0, y0) {//在这里我们将数据的初始化独立出来,以被在c#中所调用

 this.x = x0;

 this.y = y0;

 createMap();

}

function createMap() {

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

var point = new BMap.Point(x, y);

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

map.enableScrollWheelZoom();

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

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

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

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

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

var point = new BMap.Point(x, y);

map.centerAndZoom(point, 15);

var marker = new BMap.Marker(point);        // 创建标注

marker.addEventListener("click"function () {

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

 map.centerAndZoom(point, 15);

});

 map.addOverlay(marker);     // 将标注添加到地图中

}

    </script>  

</head>  

 

<body>  

<div id="container"></div> 

</body>  

</html>

在地图窗体加载的时候,我们将webbrowser控件的uri指向上面这个html。同时将传入所需的x,y坐标。

private void btn_location_Click(object senderEventArgs e)
{
BaiduMap form = new BaiduMap();
form.initData(Convert.ToDouble(txt_X.Text), Convert.ToDouble(txt_Y.Text));
form.ShowDialog();
}
在第二个窗体中我们即将获得的坐标x,y传了过去。BaiduMap.cs
double xy;
public void initData(double xdouble y)
{
this.x = x;
this.y = y;
}
同时.
private void web_map_DocumentCompleted(object senderWebBrowserDocumentCompletedEventArgs e)
{
web_map.Document.InvokeScript("initdata"new Object[] { xy });//调用html中我们独立出来的那个initdata函数。将数据初始化进去,这里是c#调用JavaScript的函数。
 }

在文档被加载完毕的时候我们将调用initdata,将所输入的坐标设置到webbrowser中。

 private void BaiduMap_Load(object senderEventArgs e)
 {
 web_map.Url = new Uri(Application.StartupPath + @"\res\map.html"UriKind.Absolute); //窗体加载的时候将我们准备好的html模板设置进去。
}
 
这样就完成了。给定坐标,在百度地图中定位到该地址,并在地图中标记出来

效果如下图:

 

老规矩,送上本文档及源码demo  稍后点击打开链接

转载于:https://my.oschina.net/hollowj/blog/729229

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用C#WinForms来调用摄像头。首先,确保你的计算机上已经安装了摄像头设备,并且已经安装了适当的驱动程序。 接下来,你可以使用`System.Windows.Forms`命名空间中的`PictureBox`和`VideoCapture`类来实现这个功能。下面是一个简单的示例代码: ```csharp using System; using System.Windows.Forms; using Emgu.CV; using Emgu.CV.Structure; namespace CameraCapture { public partial class MainForm : Form { private VideoCapture capture; public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { // 初始化摄像头 capture = new VideoCapture(); // 设置图像控件作为视频捕获窗口 capture.ImageGrabbed += Capture_ImageGrabbed; // 开始捕获 capture.Start(); } private void Capture_ImageGrabbed(object sender, EventArgs e) { // 获取当前帧图像 Mat frame = new Mat(); capture.Retrieve(frame); // 在PictureBox中显示图像 pictureBox.Image = frame.ToBitmap(); } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { // 停止捕获并释放资源 capture.Stop(); capture.Dispose(); } } } ``` 在这个示例中,我们创建了一个`MainForm`类,继承自`Form`,并在窗体的加载事件中初始化了摄像头,并将当前帧图像显示在一个名为`pictureBox`的`PictureBox`控件中。在窗体关闭事件中停止捕获并释放资源。 请注意,上述示例使用了Emgu.CV库来实现摄像头调用。你可以使用NuGet包管理器来安装Emgu.CV库,并在代码中引用它。 希望这个简单的示例能帮助你开始使用C# WinForms调用摄像头!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值