最進實驗室的項目,需要用到GPS或者北斗定位,於是乎我的上位機部分就要實現地圖界面,並且實現輸入經緯度值在地圖中實現顯示。
到網上收了很多的關於Google地圖方面的應用,我知道了要用到JAVASCRIPT這個腳本語言,我是沒有接觸過啊,瞬間覺得亞歷山大。
於是乎,用了些時間來學JS,入手了才知道,對於一個有一定C++編程經驗的我來說,不算是很難(小小的自戀一下)。。。。。
看得視頻是李炎恢的,這位老濕講的非常不錯。你問我是怎么來的,百度搜索—JAVASCRIPT 百度網盤,就這樣搜到了,(支持百度網盤。。。。)
下面就來介紹一下網上的基本成果了:
首先建立一個對話框的工程,添加Microsoft web Browser控件到對話框上,給他定義一個control類型的變量m_explorer,在OnintialDlg中添加如下代碼
//一下幾條語句是為了生成html文件的當前目錄 CHAR szPath[255];//路徑 memset(szPath, 0, sizeof(CHAR) * 255);//清空 GetCurrentDirectory(255, szPath);//獲得當前目錄 StrCat(szPath, _T("\\Google-earth.html"));//字符串串接,得到完整目錄 m_explorer.Navigate(szPath,NULL,NULL,NULL,NULL);//加載Google-earth.html頁面
上面代碼的第五行中有一個目錄文件Google-earth.html,這個就是JS實現的了,代碼如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="content-type" content="text/html; charset=gb2312"/><!--注意字符集設置為:gb2312,不會出現中文亂碼--> <title>Google 地圖 JavaScript API 示例: 地圖標記</title> <script src="http://ditu.google.cn/maps?file=api&v=2&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA&hl=zh-CN" type="text/javascript"></script> <script type="text/javascript"> function initialize() { if( GBrowserIsCompatible() )//如果瀏覽器支持google地圖 { map = new GMap2(document.getElementById("map_canvas"));//定義一個地圖變量,不加關鍵字var,表明是一個全局變量 map.setCenter(new GLatLng(22.536, 113.956), 14);//設置初始中心,縮放級別 //map.openInfoWindow(map.getCenter(),document.createTextNode("Hello, world"));//顯示一個氣泡信息 map.addControl(new GLargeMapControl());//增加大的縮放條 //map.addControl(new GSmallMapControl());//增加小的縮放條 map.addControl(new GMapTypeControl());//增加地圖類型切換按鈕 var point = new GLatLng(22.536, 113.956); //生成一個坐標點 map.addOverlay(new GMarker(point)); //增加一個地圖標記 //GEvent.addListener(map, "click", function() {alert("click map");});//注冊單擊事件的監聽器,設置響應函數 } } </script> <script type="text/javascript"> function jsfunctiontest()<!--此函數會被VC中代碼調用--> { alert("這是JS中的alert函數"); //map.panTo(new GLatLng(39.927,116.407));//跳轉到指定坐標 } </script> <script type="text/javascript"> function TansTo(lat, lng)//轉到指定位置,有兩個參數,緯度和經度 { //alert(lng);//測試參數是否傳遞過來 //var longi = parseFloat(lng);//后來才知道,不用類型轉換,javascript可以自動轉換 //var lati = parseFloat(lat); map.panTo(new GLatLng(lat, lng)); } </script> </head> <body onload="initialize()" onunload="GUnload()"> <!--//頁面加載完成后執行initialize()函數--> <div id="map_canvas" style="width: 800px; height: 500px"></div><!--定義名為map_canvas的DIV--> </body> </html>
這里面實現了什么功能,注釋的就很清楚了。
編譯運行程序,就可以實現最基本的功能了。

