C\#바 이 두 지 도 를 사용 하여 좌표 점 설정 및 예제 읽 기

바 이 두 맵 키 신청 및 바 이 두 API 보기
사이트 주소:http://lbsyun.baidu.com/apiconsole/key#/home

사이트 주소:http://lbsyun.baidu.com/jsdemo.htm#c1_3

프로그램 구현 기능:
1.사이트 주 소 를 입력 하면 로 컬 html 파일 을 호출 할 수도 있 고 다른 사이트 에 방문 할 수도 있 습 니 다.
2.좌 표를 입력 하고 좌표 단 추 를 추가 하면 좌 표를 html 파일 에 전송 하여 위도 텍스트 상자 에 표시 할 수 있 습 니 다.
3.포 지 셔 닝 단 추 를 누 르 면 지 도 를 다시 찾 을 수 있 습 니 다.포 지 셔 닝 중심 은 텍스트 상자 안의 경위도 입 니 다.
4.레이 블 점 을 추가 하 는 것 은 텍스트 상자 안의 경 위 를 지도 에 추가 하 는 것 입 니 다.
5.레이 블 버튼 을 삭제 하면 모든 레이 블 점 을 삭제 할 수 있 습 니 다.
6.지 도 를 클릭 하면 텍스트 상자 에 클릭 한 좌표 경 위 를 표시 할 수 있 습 니 다.
7.실시 간 표시 시작 버튼 을 클릭 하여 맵 에서 마 우 스 를 이동 하면 실시 간 경 위 를 획득 할 수 있 습 니 다
최종 도

웹 브 라 우 저 컨트롤 로 지 도 를 보 여 줍 니 다.
VS 프로젝트 를 만 들 고 컨트롤 웹 브 라 우 저 를 추가 하 며.html 파일 을 새로 만 들 고.html 파일 은 바 이 두 API 를 참고 하여 파일 에 기록 합 니 다.
JS 와 상호작용 을 하기 위해 먼저 using System.security.Permissions 를 도입 합 니 다.그리고 namespace 에 두 줄 을 추가 해 야 합 니 다:

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] 
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
창 에 Load 이벤트,,이것 이 기능 의 주요 점 입 니 다.
그리고 창 에서 실행 되 는 코드:

 private void Form1_Load(object sender, EventArgs e)
    {
      try
      {
        //string str_url = Application.StartupPath + "../HTMLPage1.html";//        html   ,            HTMLPage1.html    debug   
        string str_url = "C:/Users/12606/Desktop/C#/map/map/HTMLPage1.html";//        html   ,            HTMLPage1.html    debug   
        Uri url = new Uri(str_url);
        webBrowser1.Url = url;     // WebBrowser         
        webBrowser1.ObjectForScripting = this;  //              

        textBox1.Text = str_url;       

      }
      catch (Exception ex)
      {
        MessageBox.Show(ex.Message, "  ", MessageBoxButtons.OK, MessageBoxIcon.Error);
      }
    }
.html 파일

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  <style type="text/css">
    body, html{
      width: 100%;
      height: 100%;
      overflow: hidden;
      margin: 0;
      font-family: "    ";
    }
    #allmap {
      height: 97%;
      width: 100%;
    }

    #r-result {
      width: 100%;
      font-size: 14px;
    }
  </style>
  <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=    "></script>
  <title>    </title>
</head>
<body>
  <div id="r-result">
    <!--      --->
      : <input id="longitude" type="text" style="width:100px; margin-right:10px;" />
      : <input id="latitude" type="text" style="width:100px; margin-right:10px;" />
    <!--  --->
    <input type="button" value="  " onclick="theLocation()" />
    <input type="button" value="    " onclick="addPoint()" />
    <input type="button" value="    " onclick="deletePoint()" />
  </div>
  <div id="allmap"></div>

  <b id="mouselng">0</b>
  <b id="mouselat">0</b>

</body>
</html>
<script type="text/javascript">
	//     API  
  var map = new BMap.Map("allmap");       //   Map  
  var point = new BMap.Point(120.371, 30.327); //       
  map.centerAndZoom(point, 17);         //      ,             

  //       
  var marker = new BMap.Marker(point);    //       
  map.addOverlay(marker);           //           

  //            
  var navigationControl = new BMap.NavigationControl({
    //       
    anchor: BMAP_ANCHOR_TOP_LEFT,
    // LARGE  
    type: BMAP_NAVIGATION_CONTROL_LARGE,
    //       
    enableGeolocation: true
  });
  map.addControl(navigationControl);


  //        GPS  
  function showInfo(e) {
    //alert(e.point.lng + ", " + e.point.lat);//         GPS
    document.getElementById("longitude").innerText = e.point.lng;
    document.getElementById("latitude").innerText = e.point.lat; 

    document.getElementById("mouselng").innerHTML = e.point.lng;
    document.getElementById("mouselat").innerHTML = e.point.lat;

  }
  map.addEventListener("click", showInfo);    //    

	//        
	map.addControl(new BMap.MapTypeControl({
		mapTypes:[
      BMAP_NORMAL_MAP,
      BMAP_HYBRID_MAP
    ]
  }));

  var opts = { offset: new BMap.Size(100, 20) }
  map.addControl(new BMap.ScaleControl(opts));//     

  //map.addControl(new BMap.ScaleControl());  //     
  map.setCurrentCity("  ");     //          ,MapTypeControl          
  map.enableScrollWheelZoom(true);   //        

  //            
  function theLocation() {
    if (document.getElementById("longitude").value != "" && document.getElementById("latitude").value != "") {
      map.clearOverlays();
      var new_point = new BMap.Point(document.getElementById("longitude").value, document.getElementById("latitude").value);
      var marker = new BMap.Marker(new_point); //     
      map.addOverlay(marker);       //                
      map.panTo(new_point);   //           
    }
  }

  //     
  function addPoint() {
    if (document.getElementById("longitude").value != "" && document.getElementById("latitude").value != "") {
      
      var new_point = new BMap.Point(document.getElementById("longitude").value, document.getElementById("latitude").value);
      var marker = new BMap.Marker(new_point); //     
      map.addOverlay(marker);       //          
    }
  }

  //       
  function deletePoint() {

    //           ,   
    //map.clearOverlays();

    //           ,   
    var allOverlay = map.getOverlays();
    for (var i = 0; i < allOverlay.length; i++) {
      if (allOverlay[i].toString() == "[object Marker]") {
        map.removeOverlay(allOverlay[i]);       
      }
    }

    ////          
    //if (document.getElementById("longitude").value != "" && document.getElementById("latitude").value != "") {
    //  var new_point = new BMap.Point(document.getElementById("longitude").value, document.getElementById("latitude").value);
    //  var marker = new BMap.Marker(new_point); //     
    //  map.removeOverlay(marker);
      
    //}    
  }

    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;
      }
    }

</script>
http://lbsyun.baidu.com/jsdemo.htm#c1_3
바 이 두 공식 문 서 는 수요 에 따라 쓸 수 있 는 Demo 를 많이 주 었 다.
Form1.cs 전체 코드

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Permissions;
using System.IO;


namespace map
{
	//      JS  ,    using System.Security.Permissions;,   namespace       :
  [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]//  JS    
  [System.Runtime.InteropServices.ComVisibleAttribute(true)]
  
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      try
      {
        //string str_url = Application.StartupPath + "../HTMLPage1.html";//        html   ,            HTMLPage1.html    debug   
        string str_url = "C:/Users/12606/Desktop/C#/map/map/HTMLPage1.html";//        html   ,            HTMLPage1.html    debug   
        Uri url = new Uri(str_url);
        webBrowser1.Url = url;     // WebBrowser         
        webBrowser1.ObjectForScripting = this;  //              

        textBox1.Text = str_url;
        

      }
      catch (Exception ex)
      {
        MessageBox.Show(ex.Message, "  ", MessageBoxButtons.OK, MessageBoxIcon.Error);
      }
    }

    private void button1_Click(object sender, EventArgs e)
    {
      //     MapWinForms\bin\Debug 
      //string url = Application.StartupPath + "\\HTMLPage1.html";
      //string url = "C:/Users/12606/Desktop/C#/map/map/HTMLPage1.html";
      //textBox1.Text = url;
      string url = textBox1.Text.ToString();

      //  js     
      webBrowser1.ScriptErrorsSuppressed = true;

      //      HTML   
      webBrowser1.Navigate(url);


    }

    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))
        {
          label2.Text = "    :" + dou_lng.ToString("F6") + "," + dou_lat.ToString("F6");//      6 
        }
      }
      catch (Exception ee)
      { MessageBox.Show(ee.Message); }
    }

    private void btnGetLocation_Click(object sender, EventArgs e)
    {
      if (btnGetLocation.Text == "      ")
      {
        timer1.Enabled = true;
        btnGetLocation.Text = "      ";
      }
      else
      {
        btnGetLocation.Text = "      ";
        timer1.Enabled = false;
      }

    }


    private void btnGPS_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("longitude").InnerText = textBox_longitude.Text;
      webBrowser1.Document.GetElementById("latitude").InnerText = textBox_latitude.Text;
    }


  }
}
소스 코드
C\#바 이 두 지 도 를 사용 하여 좌표 점 의 설정 을 실현 하고 예 시 를 읽 는 것 에 관 한 이 글 은 여기까지 소개 합 니 다.더 많은 관련 C\#바 이 두 지도 좌표 점 에서 내용 을 읽 으 려 면 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많이 응원 해 주세요!

좋은 웹페이지 즐겨찾기