欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
【轉】windows 程序以COM接口開(kāi)發(fā)的Google Earth API(有C#和VC...

【轉】windows 程序以COM接口開(kāi)發(fā)的Google Earth API(有C#和VC源代碼)

http://www.ak88.net/article/58.htm

這里的Google Earth API(本文的Google Earth API和最新Google Earth API概念不同,前者是windows 程序以COM接口開(kāi)發(fā),目前的Google Earth API是通過(guò)Google Earth 插件在瀏覽器理開(kāi)發(fā)的API函數,本文主要是講windows 程序以COM接口開(kāi)發(fā))不同于GoogleMAP API:大家可能對于GoogleMAP API有一些印象了而且網(wǎng)上對于GoogleMAP API的應用也有很多比如http://www.flashearth.com/那么什么是GoogleEarth API呢?GoogleEarth API能作什么呢?下面我就結合我編的一些東西講講GoogleEarth API
Google Earth API Keyhole 1.0 Type Library當你要使用GoogleEarth API時(shí)首先要在工程里引用他,以VB為例,在“工程”菜單中選擇“引用”,如果你已經(jīng)安裝了GoogleEarth,那么引用欄里會(huì )有“Keyhole 1.0 Type Library ”而它是定位于GoogleEarth的主程序的。引用完畢后,打開(kāi)對象瀏覽器,你就可以看到GoogleEarth API的類(lèi)和函數及屬性了??!
GoogleEarth API有4個(gè)類(lèi),每個(gè)類(lèi)下面有多個(gè)函數及屬性 下面將我常用的函數的說(shuō)明寫(xiě)到下面:
Class KHFeature
Property hasView As Long          只讀   
暫時(shí)還不知道什么意思,沒(méi)用過(guò),哪位高手能給個(gè)解釋
Property visibility As Long                      地標的可視選項

Class KHInterface   
Property autopilotSpeed As Double               
GE的自動(dòng)飛行速度
Function currentView(terrain As Long) As KHViewInfo   
GE的當前視圖
Property currentViewExtents As KHViewExtents          只讀
Function getFeatureByName(name As String) As KHFeature
Function getPointOnTerrainFromScreenCoords(screen_x As Double,
screen_y As Double) As Double()               
Sub LoadKml(kmlData As String)          導入KML字符串,不支持中文
Sub OpenFile(fileName As String)    打開(kāi)地標文件
Sub QuitApplication()                退出程序
Sub SaveScreenShot(fileName As String, quality As Long)         
保存截圖
Sub setFeatureView(feature As KHFeature, speed As Double)
Sub SetRenderWindowSize(width As Long, height As Long)
Sub setView(view As KHViewInfo, terrain As Long, speed As Double)   
用KHViewInfo設置視角范圍
Sub setViewParams(lat As Double, lon As Double, range As Double, _
               tilt As Double, azimuth As Double, terrain As Long,
speed As Double)用數值設置視角范圍
Property streamingProgressPercentage As Long          只讀         
數據傳輸進(jìn)度百分比

Class KHViewExtents
property east As Double    只讀
Property north As Double    只讀
Property south As Double    只讀
Property west As Double    只讀

Class KHViewInfo   
Property azimuth As Double    方位角
Property latitude As Double    緯度
Property longitude As Double    經(jīng)度
Property range As Double    范圍
Property tilt As Double    傾角


利用這些函數,可以對GE進(jìn)行部分 控制,實(shí)現一些小的功能,比如在我的地標管理器中就利用了GoogleEarth API實(shí)現了地標的隱藏與顯示。
Google公司已經(jīng)將Google COM API開(kāi)放,這樣我們就可以通過(guò)開(kāi)放的API來(lái)對GoogleEarth進(jìn)行操作了,比如控制當前視圖的高度、中心經(jīng)緯度,保存當前圖片等等。下面是Google COM API的網(wǎng)址:
http://earth.google.com/comapi/那么,VC程序員如何使用這些API來(lái)控制GoogleEarth呢?下面我們編寫(xiě)一個(gè)簡(jiǎn)單的程序來(lái)說(shuō)明對Google COM API的使用。
源代碼下載   

點(diǎn)擊下載此文件  
首先用VC建立一個(gè)基于Dialog的工程(這個(gè)不用教了吧?),工程名為ControlGe,工程建好后,下面就是把Google提供的類(lèi)添加到工程里邊來(lái)。

Ctrl+W,打開(kāi)類(lèi)向導頁(yè)面,點(diǎn)擊“Add Class”按鍵,選擇“From a type
library”,然后到安裝GoogleEarth的目錄下,找到googleearth.exe文件,點(diǎn)擊“打開(kāi)”按鍵。

這時(shí)會(huì )彈出一個(gè)框來(lái)確認產(chǎn)生Google的類(lèi),直接點(diǎn)擊“OK”鍵,這是會(huì )生成兩個(gè)文件加入的工程中:googleearth.h和googleearth.cpp,里面就是我們想要的類(lèi)了。


GoogleEarth的類(lèi)已經(jīng)生成了,那我們如何來(lái)用它們呢?各位看客不用著(zhù)急,我們一步步來(lái)。

首先,我們得調用一下::CoInitialize(NULL);初始化一下COM庫了,這個(gè)函數可以在ControlGe.cpp文件中的InitInstance()函數里面調用。

然后呢,我們再在ControlGeDlg.h中定義一個(gè)類(lèi)成員變量:
IApplicationGE m_geApplication;
順便說(shuō)一下,IApplicationGE可是Google COM
API最主要的一個(gè)接口了,從它提供的操作數量就可以看得出來(lái)。

好了,離成功不遠了,控制的變量也定義了,下面就開(kāi)始用它來(lái)控制GE吧。


那么我們如何將剛定義的變量取得對GE的控制權呢?費話(huà)少說(shuō),首先在ControlGeDlg.cpp文件中定義一個(gè)變量:
static const CLSID CLSID_ApplicationGE = {0x8097D7E9,0xDB9E,0x4AEF,
{0x9B,0x28,0x61,0xD8,0x2A,0x1D,0xF7,0x84}};

然后在OnInitDialog()中加入以下代碼:
m_geApplication.CreateDispatch(CLSID_ApplicationGE);
呵呵,現在GE就歸你操控了!

我們試著(zhù)做個(gè)簡(jiǎn)單的操作吧,添加一個(gè)按鍵,然后添加按鍵的點(diǎn)擊處理函數,在函數中加入以下代碼:
CString strFileName;
static char BASED_CODE szFilter[] = "jpg Files (*.jpg)|All Files
(*.*)|*.*||";
CFileDialog dlgFile(FALSE, "jpg", NULL, OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT, szFilter, this);

if (dlgFile.DoModal() == IDOK)
{
CWaitCursor wait;
strFileName = dlgFile.GetPathName();
m_geApplication.SaveScreenShot(strFileName, 100);
}

試試看,這是將當前GE的地圖給保存成一個(gè)jpg格式的圖片,只可惜只能保存成黑白圖片,google還是給自己留了一手的。


可能上面的代碼運行會(huì )有些問(wèn)題,也許是你的GE版本太低了,也許是你的Google
COM未注冊,注冊一下就可以了,Google對注冊的說(shuō)明:
If, for some reason, the Google Earth COM API needs to be registered
again, you can execute GoogleEarth.exe with "/RegServer" as a command
line argument.
For instance, assuming GoogleEarth.exe is located in C:\Program
Files\Google\Google Earth, the following command line would register Google
Earth's COM API:

"C:\Program Files\Google\Google Earth\googleearth.exe" /RegServer

To unregister Google Earth's COM API, execute the following command:

"C:\Program Files\Google\Google Earth\googleearth.exe" /UnregServer

好了,我們下面就可以對照Google COM
API的文檔來(lái)試一試對GE的控制操作了。下面我再來(lái)演示一下如何把視圖切換到指定地方,添加如下代碼:
ICameraInfoGE geCamera;

geCamera.AttachDispatch(m_geApplication.GetCamera(TRUE));
geCamera.SetRange(800);
geCamera.SetFocusPointLongitude(113.972522);
geCamera.SetFocusPointLatitude(22.561294);

m_geApplication.SetCamera(geCamera, 1.5);

執行以上代碼后,GE就會(huì )將視圖切換到。。。嘿嘿,到俺家了。。。

OK,我要下班回家了,就寫(xiě)到這兒吧,其它功能大家對照著(zhù)google的文檔再試試,要是誰(shuí)知道上傳附件的方法,麻煩告訴我一下,我把上面示例的代碼上傳上來(lái)。


去年,水手版主給大家介紹過(guò)GE的API,詳貼見(jiàn)這里,本貼對 KHInterface 就不做過(guò)多說(shuō)明了:
http://bbs.godeyes.cn/Announce/Announce.asp?BoardID=100&ID=21506
從GE API的官網(wǎng)上看,現在這些API已經(jīng)更新了,原來(lái)大家使用的 KHInterface 這個(gè)主類(lèi),現在已經(jīng)基本被 ApplicationGE 這個(gè)主類(lèi)給取代了。GE API的官網(wǎng):
http://earth.google.com/comapi/index.html以VB.Net為例(下同),使用GE的API還是很簡(jiǎn)單的,在你打開(kāi)的項目中,選擇 項目--添加引用,然后找到 GoogleEarth.exe 選擇添加,就會(huì )在你的 Debug 目錄下生成一個(gè) Interop.EARTHLib.dll 。你還可以通過(guò) 視圖--對象瀏覽器 來(lái)查看它的組成情況。
主要有以下五個(gè)類(lèi):
ApplicationGE 主類(lèi),基本操作都在這里,比 KHInterface 更非豐富,但少了兩個(gè)重要的函數,CurrentView(當前的視角),SetView(設置視角,比如打開(kāi)GE時(shí)可以定位到指定的視角)
FeatureGE KML的標簽類(lèi)

FeatureCollectionGE 標簽集類(lèi),是 FeatureGE 集合。

ViewExtentsGE (只讀)邊界集類(lèi),可以獲得當前屏幕內四個(gè)邊的經(jīng)緯度值。

CaremaInfoGE 拷屏類(lèi),但目前沒(méi)啥大用,黑白照片。

此外還有幾個(gè)比較重要的類(lèi):

AnimationControllerGE 針對TimeStamp時(shí)間軸的,可以播放、暫停等。

PointOnTerrainGE
根據屏幕的點(diǎn)獲得的經(jīng)緯高度值就放在這個(gè)類(lèi)里,可以看作一個(gè)數組。

SearchControllerGE 查詢(xún)GE內置地址庫的查詢(xún)類(lèi)(不是查KML文件的)


其他的還有,大家可以一起研究一下。介紹失誤的地方,請大家及時(shí)指正。


程序調用:

1、Imports EARTHLib

需要在 Public Class Form 之前聲明引入。

2、Public khapp As EARTHLib.ApplicationGE

在 Form 內定義,本人一般定義為全局,方便使用。

3、khapp = New ApplicationGE

在按鈕事件內首先要賦值為
New,每次都需要,否則容易出問(wèn)題。如果找不到,返回值是 IsNothing()=True,其他的類(lèi)也相同,為防止程序出錯,找不到時(shí)可用

IsNothin進(jìn)行判斷處理。

4、為防止出現錯誤,可以用 Try 進(jìn)行錯誤截取,使用 ex.tostring
獲得錯誤信息,然后在 Catch 后面 return 。



下面開(kāi)始介紹 FeatureGE 類(lèi)的函數、方法或者值:

Function GetChildren() As EARTHLib.FeatureCollectionGE
標簽的包含的子標簽,返回值定義到 FeatureCollectionGE 中(多個(gè))

Function GetParent() As EARTHLib.FeatureGE 標簽的父標簽(單個(gè))

ReadOnly Property HasView() As Integer 終于搞清楚這是什么了,其實(shí)就是
<LookAt> ,如果沒(méi)有這個(gè)屬性,HasView
=0,有就是1。沒(méi)有時(shí)GE是不會(huì )自動(dòng)導航到你指定的地標,即使你已經(jīng)找到了它,在這種情況下,至今沒(méi)找到好方法通過(guò)API導航到已找到的地標。這是本人覺(jué)得Google最可惡的地方,其實(shí)在GE中,不管你有沒(méi)有
<LookAt> ,無(wú)論你是 目錄 還是
地標,它都會(huì )以最合理的方式包含其中的所有地標。大家大概沒(méi)多少人習慣加上這個(gè)
<LookAt>,所以在調用時(shí)就會(huì )出現有時(shí)成功,有時(shí)不成功,讓人惱火不已。

ReadOnly Property Highlighted() As Integer 和 Highlight 加亮

ReadOnly Property Name() As String 標簽的Name值

ReadOnly Property TimeInterval() As EARTHLib.TimeIntervalGE
沒(méi)仔細研究,大概跟定時(shí)有關(guān)系

Property Visibility() As Integer 比較有用的值,對應于KML中的
<Visibility>,0不顯示,1顯示。



ApplicationGE 主類(lèi):

Property AutoPilotSpeed() As Double
從一個(gè)地標轉到另一個(gè)地標時(shí)的速度,從0--5,默認只有 0.119

Property ElevationExaggeration() As Double
和GetPointOnTerrainFromScreenCoords有關(guān)

Function GetFeatureByHref(ByVal href As String) As EARTHLib.FeatureGE
就是 <Placemark id="test">,這個(gè)id的值test就是Href,String=
包含路徑的文件名#test(跟網(wǎng)頁(yè)里查tag的方法相同),具有唯一性,但估計沒(méi)多少人喜歡寫(xiě)這個(gè)id,所以還是好看不好用。也沒(méi)測試出來(lái)沒(méi)有的情況下GE是如何保證"唯一"的。

Function GetFeatureByName(ByVal Name As String) As EARTHLib.FeatureGE
目前只能用這個(gè),但這個(gè)又不具有唯一性,如果兩個(gè)名稱(chēng)相同,永遠只能找到第一個(gè)。這是GE的第二個(gè)可惡之處,這么方便的功能,如果放到
FeatureCollectionGE 里,那該多好啊,就可以繼續查詢(xún)"下一個(gè)"了。

Function GetHighlightedFeature() As EARTHLib.FeatureGE 沒(méi)發(fā)現什么用途

Function GetLayersDatabases() As EARTHLib.FeatureCollectionGE
獲得GE左下角的數據庫,這次總算放到標簽集里去了

Function GetMainHwnd() As Integer 和 Function GetRenderHwnd() As
Integer ,前一個(gè)是主程序的句柄號,后一個(gè)是 GE視窗
的句柄號。Google挺好玩的,連這個(gè)都老老實(shí)實(shí)地告訴大家了,連Spy++都省了,呵呵。

Function GetTemporaryPlaces() As EARTHLib.FeatureGE
GE臨時(shí)目錄,可以通過(guò) GetChildren() 繼續查找打開(kāi)文件的名字等。

Function GetMyPlaces() As EARTHLib.FeatureGE GE里我的目錄,用途同上。

Function GetPointOnTerrainFromScreenCoords(ByVal screen_x As Double,
ByVal screen_y As Double) As EARTHLib.PointOnTerrainGE
給出屏幕的點(diǎn)X,Y坐標,轉成經(jīng)緯高三個(gè)坐標值,ElevationExaggeration為0時(shí)高度為0,為1時(shí)高度為實(shí)際值。

更正計算公式,終于可以得到準確的X、Y點(diǎn)坐標了,跟地圖下面標的一模一樣了:

X、Y代表裝GE的控件的本地坐標(相對坐標),不是屏幕的絕對坐標,可以通過(guò)
PointToClint
函數獲得裝GE控件的X、Y坐標,然后轉換成GE要求的平面坐標系的坐標值,和屏幕坐標值相比,Y軸的算法是相反的,也就是說(shuō),GE的坐標系,是以GE地球界面的中間點(diǎn)為原點(diǎn)(0,0),X軸從-1到+1,Y軸從-1到+1,公式轉換如下:

( X - Width/2 ) / Width * 2

( Hight/2 - Y ) / Hight * 2

注:X、Y均是從0開(kāi)始計算,然后到Width或者Hight -1 為最大值。

(原來(lái)是從以前地方借來(lái)的,發(fā)現是錯誤的:-1到1計算公式大概是:
(X-Width/2)/Width (Y-Hight/2)/Hight)

Sub HideDescriptionBalloons() 和 Sub ShowDescriptionBalloon(ByVal
feature As EARTHLib.FeatureGE) 打開(kāi)/隱藏地標描述,一般和下面的
SetFeatureView 配合使用。

Function IsInitialized() As Integer 是否初始化

Function IsOnline() As Integer 是否連上GE

Sub Logout() 和 Sub Login()
登陸或者退出,不會(huì )提示關(guān)閉前存盤(pán)臨時(shí)文件(好象其他地方有參數可以設置,忘了)。GE的第三個(gè)可惡之處:臨時(shí)文件沒(méi)辦法清除,只能設置Visibility=0,但如果有名稱(chēng)重疊的話(huà),那你就只能找到第一個(gè)地標。如果你要徹底清除,就只能先采用個(gè)土方法,先退出再登陸。

Sub LoadKmlData(ByRef kmlData As String)
比較有用的功能,導入完整的KML字符串,必須包含從 <?xml
開(kāi)始的所有東東,而不能只是一個(gè)Placemark什么的。

Sub OpenKmlFile(ByVal fileName As String, ByVal suppressMessages As
Integer) 最有用的功能了,導入KML/KMZ文件。后面的參數含義是:1 指不提示,0
提示。就是說(shuō)如果這個(gè)文件已經(jīng)導入的話(huà),0的時(shí)候就會(huì )彈出個(gè)對話(huà)框,問(wèn)你是否重新導入。

Sub SaveScreenShot(ByVal fileName As String, ByVal quality As Integer) 給個(gè)文件名,存黑白照片

ReadOnly Property SearchController() As EARTHLib.SearchControllerGE 查GE內置數據庫用的

Sub SetFeatureView(ByVal feature As EARTHLib.FeatureGE, ByVal speed As Double) 將前面用 GetFeatureByName/Href
找到的地址進(jìn)行導航,轉到這個(gè)地標。前面已經(jīng)介紹了,需要兩個(gè)判斷,一個(gè)是 Isnothing,True就不要轉;一個(gè)是HasView,0就不要轉,否則會(huì )出錯。

ReadOnly Property StreamingProgressPercentage() As Integer   程序運轉的百分比,一般得到的時(shí)候都是100%了。

ReadOnly Property TourController() As EARTHLib.TourControllerGE 大概跟 Tour 有關(guān)的控制

ReadOnly Property VersionAppType() As EARTHLib.AppTypeGE   GE版本:EnterpriseClientGE = 0, ProGE = 1, PlusGE = 2, FreeGE = 5, UnknownGE = 0xFF
,咱們都是5

ReadOnly Property VersionBuild() As Integer 版本號4.0.2693中的2693,和下面兩個(gè)一起可以拼成一個(gè)完整的版本號。
ReadOnly Property VersionMajor() As Integer 和 ReadOnly Property VersionMinor() As Integer 比如4.0.2693前一個(gè)指版本號的 4,后一個(gè)指 0

ReadOnly Property ViewExtents() As EARTHLib.ViewExtentsGE 比較有用的一個(gè)功能,獲得四個(gè)邊的經(jīng)緯度值。a coarse approximation of what is visible in the 3D view of a Google Earth application(原話(huà)),比較粗糙,比當前的邊框要大一點(diǎn)點(diǎn),不知為何。主要就這些了。當然,進(jìn)入每個(gè)功能后,還有許多詳細的功能,有待于大家繼續發(fā)掘了。
糾正一下: CameraInfoGE 這個(gè)類(lèi)很有用,第一貼重大失誤啊。
繼續介紹 CameraInfoGE 如下(均可以 獲得值 和 設定值 ):
1、FocusPointLongitude、FocusPointLatitude、FocusPointAltitude, 記錄經(jīng)度、緯度、高度數據

2、FocusPointAltitudeMode,目前只有 1 (默認)和 2 兩種取值,分別對應 KML 格式介紹中的 relativeToGround 和 absolute ,KML 格式中的默認 clampToGround 似乎沒(méi)有值對應,曾試過(guò)0 或者3,均出現錯誤。
3、Range 高度 (0---8萬(wàn)公里)
4、Tilt 傾斜度,以垂直為 0,最大為90度,即地面的切線(xiàn)為最大值。
5、Azimuth 方位角 (-180---180)
#如何獲得當前視角:
ApplicationGE.GetCamera(B) B取值True/False或者 1/0也可以,True 更精確。

#如何定義視角:
根據自己的需要,分別定義 1、2、3、4、5,一般其他不變,只變高度就可以實(shí)現高度的自由轉換。#如何定位到確定的視角(或者恢復到 已儲存的視角)
ApplicationGE.SetCamera(CameraInfoGE,速度) 將前面獲得的當前視角或者經(jīng)過(guò)定義的視角賦值給 CameraInfoGE ,即可驅動(dòng)GE轉移到該視角。速度取值
0--5,GE默認0.119。*高級應用:

1、結合 GetCamera 、和 SetCamera
,定義好幾個(gè)轉換地點(diǎn),并合理調整其中的角度、高度、速度等相應值,再加上時(shí)間延遲功能,完全可以做出符合自己要求的
Tour 效果,這時(shí)候再結合屏幕拷貝軟件,就可以制作出相當棒的演示效果。

用C#控制GE的源程序

GE API C#開(kāi)發(fā)的源碼,發(fā)貼共享,供高手開(kāi)發(fā)參考
網(wǎng)址http://tropicalwatch.googlecode.com/svn/trunk/GoogleEarthCOMWrapper/
發(fā)一段,其它自己下載吧
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

using GoogleEarthCOMWrapper;
using EARTHLib;

namespace TestGoogleEarthCOMWrapper
{
class Program
{
   static void Main(string[] args)
   {
      try
      {
            // Create the API Wrapper...this also inits it.
            GoogleEarthAPI geAPI = new GoogleEarthAPI();

            // Run some examples

            // Get Version info about your GoogleEarth Client
            int major = geAPI.VersionMajor;
            int minor = geAPI.VersionMinor;
            int build = geAPI.VersionBuild;
            string appType = geAPI.VersionAppType.ToString();
            Console.WriteLine("Version = " + major + "." + minor +
"." + build + " " + appType);

            // Open a local Kml File
            string fileName = AppDomain.CurrentDomain.BaseDirectory
+ "\\test.kmz";
            Console.WriteLine("\nCalling OpenKmlFile(" + fileName +
", true)...");
            geAPI.OpenKmlFile(fileName, true);
           
            // Get the Camera info
            CameraInfoGEClass cam = geAPI.GetCamera(false);
            Console.WriteLine("\nCamera Info:");
            Console.WriteLine("\tAzimuth " + cam.Azimuth);
            Console.WriteLine("\tFocusPointAltitude " +
cam.FocusPointAltitude);
            Console.WriteLine("\tFocusPointAltitudeMode " +
cam.FocusPointAltitudeMode);
            Console.WriteLine("\tFocusPointLatitude " +
cam.FocusPointLatitude);
            Console.WriteLine("\tFocusPointLongitude " +
cam.FocusPointLongitude);

            // Get the ViewExtents
            ViewExtentsGEClass ve = geAPI.ViewExtents;
            Console.WriteLine("\nView Extents");
            Console.WriteLine("\tNorth " + ve.North);
            Console.WriteLine("\tSouth " + ve.South);
            Console.WriteLine("\tEast " + ve.East);
            Console.WriteLine("\tWest " + ve.West);

            // Get the lat/lon/alt at screen coord (100, 100)
            GeoPoint gp =
geAPI.GetPointOnTerrainFromScreenCoords(100, 100);
           
Console.WriteLine("\nGetPointOnTerrainFromScreenCoords(100, 100) = ");
            Console.WriteLine("\t(" + gp.Lat + ", " + gp.Lon + ", "
+ gp.AltMeters + ")");

            // Get the My Places Feature
            FeatureGEClass fc = geAPI.GetMyPlaces();
            if (fc != null)
            {
               foreach (FeatureGE fcge in fc.GetChildren())
               {
                  fcge.Highlight();
                  Console.WriteLine("Feature " + fcge.Name + "
highlighted");
                  if (fcge.Name.Equals("Sage"))
                  {
                        fcge.Visibility = 1;
                  }
               }
            }

            // Load some kml via a string
            //FeatureGE sage = geAPI.GetFeatureByName("Sage");
            //sage.Highlight();
            //sage.Visibility = 1;
            string doc = ReadKml("test1.kml");
            geAPI.LoadKmlData(doc);
      }
      catch (Exception e)
      {
            // If you close the GE Client before one of the API
methods executes, you would get
            // an ApplicationUninitializedException for example.
There are other exceptions as well.
            Console.WriteLine(e.Message + "\n" + e.StackTrace);
      }
      Console.WriteLine("Press any key to exit...");
      Console.ReadLine();
   }

   static string ReadKml(string fileName)
   {
      StreamReader sr = new StreamReader(fileName);
      string doc = sr.ReadToEnd();
      return doc;
   }
}
}

GetPointOnTerrainFromScreenCoords(100, 100);

這個(gè)命令錯了,我在介紹GE
API的貼子里專(zhuān)門(mén)有介紹,它的取值范圍是從-1到1,屏幕坐標-->GE坐標
的轉換公式我也提供了,目前可獲得的坐標與GE的一模一樣,證明公式是正確的。

LoadKmlData能不用盡量不要用,每次生成一個(gè)文件,無(wú)法清除,寧愿用重載同一個(gè)臨時(shí)文件的方法。

GetCamera 最好用 True 參數(或者1也行),按照GE
API的說(shuō)明,獲得的地址更精確。

其他無(wú)意見(jiàn),挺好的。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
google earth 二次開(kāi)發(fā)資料
C# 調用 Google Earth Com API開(kāi)發(fā)(三)
Google Earth在經(jīng)緯網(wǎng)教學(xué)中的運用
XCar汽車(chē)俱樂(lè )部 - 愛(ài)卡自助游 - 【豬豬原創(chuàng )】《Google Earth中高級使用技...
ArrayList.Item 屬性的VB.NET例子
反射(轉)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久