C#调用百度地图API经验分享
一、引言
找了个示例项目,运行了下,然后对照着百度的官方示例(百度地图开放平台-首页链接)自己增加了点内容。
需要技能为C#,JavaScript,HTML。不会后两个,复制粘贴官方demo也能对付着用。
GitHub项目链接 https://github.com/landbroken/BaiduMapLearning
先开个坑,有空更新完整版。
二、基础技能
开发中可能涉及到的基础技能:
- 1、webBrowser控件在C#和HTML中传值
2.1 webBrowser控件在C#和HTML中传值
2.1.1 C#至html
以下为示例:
C#中传递值给html里的函数
object[] objects = new object[2];
//当前纬度
objects[0] = share_data.CurLat;
//当前经度
objects[1] = share_data.CurLng;
//传值给html中的mapInit函数
webBrowser.Document.InvokeScript("mapInit", objects);
html文件script中对应的maptnit函数
function mapInit(CurLat, CurLng) {}
2.1.2 html至C#
html文件script中函数定义
//获取测试坐标 startvar Lng = 116.380960var Lat = 39.913280function GetTestGPS(CurLng, CurLat) {//百度地图API功能,经度,纬度var point = new BMap.Point(CurLng, CurLat);map.centerAndZoom(point, 20);var text="123"window.external.LocateInfo(text);return Lng;}//获取测试坐标 end
private void btnGetRightClickGPS_Click(object sender, EventArgs e){//116.380967,39.913285object[] objects = new object[2];//当前经度objects[0] = Convert.ToDouble(textBoxX.Text);//当前纬度objects[1] = Convert.ToDouble(textBoxY.Text);//传值给html中的FindPosition函数object bb = webBrowser1.Document.InvokeScript("GetTestGPS", objects);}public void LocateInfo(string msg){string get = msg;}
这里使用了两种方法,方法一是return这一句,返回值赋值给object对象bb 。
return Lng;
方法二是window.external这里,调用了C#里面的LocateInfo函数,传递一个string
window.external.LocateInfo(text);
三、百度地图简易调用
1、添加一个webBrowser控件
2、通过控件载入地图(需要联网)
string str_url = Application.StartupPath + "\\IndexMap.html";Uri url = new Uri(str_url);webBrowser1.Url = url;//屏蔽webBrowser浏览器右键菜单//webBrowser1.IsWebBrowserContextMenuEnabled = false;//修改webbrowser的属性使c#可以调用js方法:webBrowser1.ObjectForScripting = this;
3、功能写在html中,通过C#调用js方法实现,js方法可以从百度的官方demo复制。例如:
//清除地图上的标记,点击清除按钮触发private void clearMarker_Click(object sender, EventArgs e){webBrowser1.Document.InvokeScript("ClearAllMarkers"); }
详见GitHub上完整示例。
参考文献
1、C#|通过webBrowser控件实现与html间的相互传值
C#调用百度地图API经验分享相关推荐
- C#调用百度地图API入门解决BMap未定义问题
本文主要是最近帮助好友研究JavaScript的百度地图API,同时显示到C# Winform界面.同时遇到了BMap未定义的错误(BMap is not defined)及解决方法.以前写过基于An ...
- 【c#】Form调用百度地图api攻略及常见问题
首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...
- 调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview
调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview 问题如下 本来以为解决了,但后来重新运行了一下,又坏了,然后改成原来的样子 ...
- python调用百度地图API爬取西安市POI数据
任务前提 做该项目之前,首先得有基础知识: 编程语言:python 编译工具:PyCharm 网络爬虫相关知识,xpath库,numpy,pandas等库. 任务准备: 去百度地图开放平台申请密匙:h ...
- c语言api获取百度地图,H5调用百度地图API获取地理位置
//获取当前位置 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function(r){ alert ...
- java 地图api接口_Java调用百度地图API
本实战代码将使用百度地图的接口来实现以下功能: 1.确定输入地址的坐标 2.两个坐标的距离 其他的话,还要使用百度账户申请相关的api,具体见: http://lbsyun.baidu.com/ind ...
- Python调用百度地图api路径查询
通过调用百度地图api获取两个地点的距离和时间.参数详见百度地图api官方文档. # -*- coding: utf-8 -*- """ Created on Thu M ...
- centerandzoom 无效_Django调用百度地图api在地图上批量增加标记点
在调用百度地图api进行web开发时遇到了一个需求,我们需要在网页中内嵌一个div 然后在div中调用百度地图的js显示我们所需要的地区.根据需求坐标在地图上添加若干个标记点,并批量的为各个标记点设置 ...
- python 调用百度地图api 实现批量经纬度转换为实际省市地点(api调用,json解析,mysql读取与写入)
1.获取秘钥 调用百度地图API实现得申请百度账号或者登陆百度账号,然后申请自己的ak秘钥.链接如下:添加链接描述 下面是百度创建的app设置: 2.调用API将经纬度信息解析成json信息 def ...
- HTML5页面调用百度地图API,获取当前位置并导航到目的地
微信也可用, <!DOCTYPE html> <html lang="zh-cmn-Hans"><meta charset="UTF-8&q ...
最新文章
- android多行文本框hint居中,在安卓等移动浏览器中placeholder中的文字不垂直居中问题...
- 用Axure开发的一个智能驾驶的app原型
- P4719-[模板]动态DP【矩阵乘法,树链剖分,线段树】
- php4.0中文手册,服务 — CodeIgniter 4.0.0 中文手册|用户手册|用户指南|中文文档
- win下常用快捷鍵及其作用
- java bufferedreader读大文件会内存溢出吗_深度分析:java中的字符流与字节流,以及缓存流,一次性帮你全掌握...
- android手机录屏工具,安卓手机录屏软件哪个好用
- 微信小程序上线发布流程
- 慧荣SM2246XT主控的固态硬盘修复开卡不识别怎么短接方法
- 信庭嵌入式工作室-ARM应用技术之体系结构应用(中)
- 宏定义是什么?为什么要进行宏定义?宏定义的格式
- MySQL (四)------DML操作表记录-增删改【重点】DQL操作表记录-查询【重点】
- trello01:后端的搭建
- CollapsingToolbarLayout 标题字体及颜色设置
- [附源码]java毕业设计校园拓展活动管理系统
- 2016 清华 计算机 考研 经验 总结
- iftop命令命令详解
- vs2017 fatal error LNK1104: 无法打开文件“\.obj”
- 华为三个路由器ospf配置案例
- 访问学者初到美国,如何快速融入当地生活呢?