1. 程式人生 > >Winform呼叫百度地圖介面簡單示例

Winform呼叫百度地圖介面簡單示例

1、首先用一個html檔案呼叫百度地圖介面(主要註冊一個序列號):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>百度地圖的Hello World</title>
    <style type="text/css">
        body, html, #allmap
        {
            width: 100%;
            height: 100%;
            overflow: hidden;
            margin: 0;
        }
        #l-map
        {
            height: 100%;
            width: 78%;
            float: left;
            border-right: 2px solid #bcbcbc;
        }
        #r-result
        {
            height: 100%;
            width: 20%;
            float: left;
        }
    </style>


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


</head>
<body>
    <div id="allmap">
    </div>
</body>
</html>


<script type="text/javascript">
    //alert("Hello World");
    var map = new BMap.Map("allmap");               // 建立Map例項


    var point = new BMap.Point(121.504, 31.212);    // 建立點座標(經度,緯度)
    map.centerAndZoom(point, 11);                   // 初始化地圖,設定中心點座標和地圖大小級別
    map.addOverlay(new BMap.Marker(point));         // 給該座標加一個紅點標記


    //var traffic = new BMap.TrafficLayer();         // 建立交通流量圖層例項     
    //map.addTileLayer(traffic);                     // 將圖層新增到地圖上   


    map.addControl(new BMap.NavigationControl());   // 新增平移縮放控制元件
    map.addControl(new BMap.ScaleControl());        // 新增比例尺控制元件
    map.addControl(new BMap.OverviewMapControl());  //新增縮略地圖控制元件


    map.addControl(new BMap.MapTypeControl());      //新增地圖型別控制元件
    map.setCurrentCity("上海");                     //設定地圖顯示的城市




    map.enableScrollWheelZoom();                    //啟用滾輪放大縮小
    
    function setLocation(x,y){//引數:經緯度
         var point = new BMap.Point(x, y);   
         map.centerAndZoom(point, 11);                  
         map.addOverlay(new BMap.Marker(point));      
    }
</script>



2、建立一個Winform專案,用一個WebBrower控制元件檢視html檔案、呼叫JavaScript程式碼
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;


namespace BaiDuMap
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                //webBrowser1.Url = new Uri("http://www.2345.com");
                //這個檔案於可執行檔案放在同一目錄
                webBrowser1.Url = new Uri(Path.Combine(Application.StartupPath, "GoogleMap.htm"));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "異常", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


        }


        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            //這裡傳入x、y的值,呼叫JavaScript指令碼
            webBrowser1.Document.InvokeScript("setLocation", new object[] { 121.504, 39.212 });
        }


    }
}