2013-01-14 164 views
1

是否存在將Google地球定位到指定位置的KML標記序列?KML是否支持搜索功能

如果我啓動Google地球,請在搜索文本框中輸入「Houston」,然後按[搜索],地圖將定位到德克薩斯州的休斯敦。

您可以通過KML來實現嗎?

如果不是,你會如何去做這件事?我正在嘗試從C#應用程序執行此操作。

謝謝!

回答

1

大多數基本的KML文件看起來是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
<Document> 
    <name>Name of KML</name> 
    <StyleMap> 
    ......... 
    </StyleMap> 
    <Folder> 
    ...... 
    </Folder> 
</Document> 

如果分配<LookAt><Camera><Document>節點,每當KML加載它應該加載這一觀點 - 除非特別指出(例如,通過API/COM)

所以你的KML應該是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
<Document> 
    <name>Name of KML</name> 
    <LookAt> 
    .......... 
    </LookAt> 
    <StyleMap> 
    ......... 
    </StyleMap> 
    <Folder> 
    ...... 
    </Folder> 
</Document> 
0

我假設你正試圖在KML文件中的許多單一點/特徵中居中?

有(據我所知)沒有辦法通過KML定義初始地圖設置。也就是說,Google Earth 5.0支持Tours,使用FlyTo元素可以實現以位置爲中心的這一目標,但我不相信無論如何自動播放沒有JavaScript或插件的播放列表(您的要求這在KML中似乎是否定的)。

我知道Google Maps API會自動對已加載的KML文件進行自動對中和縮放(任何人都可以對Google地球做相同的評論嗎?)。我還沒有嘗試,但我很好奇,如果有方法利用這種行爲使用文件夾。如果(和一個大當):

  1. 谷歌地球集中在一個加載的KML文件/縮放和
  2. 谷歌地球做到這一點的唯一的數據在第一個或最後一個文件夾

(無論我知道這是真的)

你可以嘗試把你的搜索點放在一個文件夾中,看看地圖是否跟蹤到它。

我很抱歉,此回覆的整個第二部分是瘋狂的猜測,但我現在無法測試它,並認爲它可能值得一試。如果我在賭它,我的答案就是僅靠KML無法實現。測試上面的黑客相當容易,如果你沒有機會,我今晚應該有時間嘗試一下,併發佈一個附錄。

+0

我正在開發一個.NET Windows窗體應用程序在C#中,和我實際上,我們試圖做的是允許用戶在搜索框中輸入位置,然後以某種方式將其傳遞給GoogleEarth。我引用了EARTHLib,並且實例化了包含只讀SearchController引用的ApplicationGE對象,但是,如果我檢索SearchController引用並嘗試通過Search()方法使用它,則會引發COM錯誤。 – John

+0

我猜測我的GE(v7)版本不贊成使用此功能,因爲谷歌已經明顯地努力擺脫COM API。 我希望我可以使用KML。我試圖通過.NET WebBrowser對象獲取並使用GoogleEarth瀏覽器插件。這是非常奇怪的,IMO,爲什麼這是「首選」的API對我來說沒有多大意義,但除了意見外,我還沒有能夠獲得該API的工作。我的目的可能是心理上的脫節。無論如何,底線是我似乎無法將Google地球嵌入到框架中,並調用任何類型的搜索功能。 – John

+0

另一種方法是允許GoogleEarth作爲單獨的應用程序自行啓動,並讓用戶通過GE的側面板進行搜索。這工作正常,但它分佈在兩個單獨的形式,我試圖避免的UI。 希望這是有道理的... – John