C#调用百度地图API经验分享(四)

    这一篇,记录一下我调用的地图API实现的功能。下面介绍的都是一些片段的节选,不能直接复制就运行。在实现之前肯定要加载地图,先放一个webbroser控件,然后如下:

private void Form1_Load(object sender, EventArgs e)
        {

            string str_url = Application.StartupPath + "\\最终合并版本(昨晚修改).html";
            Uri url = new Uri(str_url);
            webBrowser1.Url = url;
            webBrowser1.ObjectForScripting = this;
                   
        }



    而为了能与JS交互,首先引入using System.Security.Permissions;,然后在namespace下必须加入两行:

namespace WebBroser_Test_V1._0
{
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]

    [System.Runtime.InteropServices.ComVisibleAttribute(true)]


    public partial class Form1 : Form
    {
               public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {

            string str_url = Application.StartupPath + "\\最终合并版本(昨晚修改).html";
            Uri url = new Uri(str_url);
            webBrowser1.Url = url;
            webBrowser1.ObjectForScripting = this;
           // timer1.Enabled = true;         
        }
}


 

 

有了上面的基础,就可以实现以下功能了。

1.鼠标放在屏幕上移动时,实时的显示坐标。

放入一个timer和一个StatusScrip:

private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                string tag_lng = webBrowser1.Document.GetElementById("mouselng").InnerText;
                string tag_lat = webBrowser1.Document.GetElementById("mouselat").InnerText;
                double dou_lng, dou_lat;
                if (double.TryParse(tag_lng, out dou_lng) && double.TryParse(tag_lat, out dou_lat))
                {
                    toolstatus_CurrentLocation.Text ="当前坐标:"+ dou_lng.ToString("F5") + "," + dou_lat.ToString("F5");
                }
            }
            catch (Exception ee)
            { MessageBox.Show(ee.Message); }
          
        }


 

放入一个button命名及代码如下:

 private void btnGetLocation_Click(object sender, EventArgs e)
        {
            if (btnGetLocation.Text == "开启实时坐标")
            {
                timer1.Enabled = true;
                btnGetLocation.Text = "关闭实时坐标";
            }
            else
            {
                btnGetLocation.Text = "开启实时坐标";
                timer1.Enabled = false;
            }
        }



JS脚本如下:

var map =new BMap.Map("allmap");
var first_locate=new BMap.Point(108.953098,34.2778);
map.centerAndZoom(first_locate,15);   
map.enableScrollWheelZoom(true);
map.addEventListener("mousemove",GetlngAndlat);   
function GetlngAndlat(e)
{if(e.point.lng!=null)
 {
 
 document.getElementById("mouselng").innerHTML=e.point.lng;
  document.getElementById("mouselat").innerHTML=e.point.lat;
 }
}


 

2.开启测距工具(百度自己开发的)

拖一个按钮:

//开启测距工具按钮
        private void btnOpenDistance_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("op
  • 30
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 75
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 75
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值