是否存在將Google地球定位到指定位置的KML標記序列?KML是否支持搜索功能
如果我啓動Google地球,請在搜索文本框中輸入「Houston」,然後按[搜索],地圖將定位到德克薩斯州的休斯敦。
您可以通過KML來實現嗎?
如果不是,你會如何去做這件事?我正在嘗試從C#應用程序執行此操作。
謝謝!
是否存在將Google地球定位到指定位置的KML標記序列?KML是否支持搜索功能
如果我啓動Google地球,請在搜索文本框中輸入「Houston」,然後按[搜索],地圖將定位到德克薩斯州的休斯敦。
您可以通過KML來實現嗎?
如果不是,你會如何去做這件事?我正在嘗試從C#應用程序執行此操作。
謝謝!
大多數基本的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>
我假設你正試圖在KML文件中的許多單一點/特徵中居中?
有(據我所知)沒有辦法通過KML定義初始地圖設置。也就是說,Google Earth 5.0支持Tours,使用FlyTo元素可以實現以位置爲中心的這一目標,但我不相信無論如何自動播放沒有JavaScript或插件的播放列表(您的要求這在KML中似乎是否定的)。
我知道Google Maps API會自動對已加載的KML文件進行自動對中和縮放(任何人都可以對Google地球做相同的評論嗎?)。我還沒有嘗試,但我很好奇,如果有方法利用這種行爲使用文件夾。如果(和一個大當):
(無論我知道這是真的)
你可以嘗試把你的搜索點放在一個文件夾中,看看地圖是否跟蹤到它。
我很抱歉,此回覆的整個第二部分是瘋狂的猜測,但我現在無法測試它,並認爲它可能值得一試。如果我在賭它,我的答案就是僅靠KML無法實現。測試上面的黑客相當容易,如果你沒有機會,我今晚應該有時間嘗試一下,併發佈一個附錄。
我正在開發一個.NET Windows窗體應用程序在C#中,和我實際上,我們試圖做的是允許用戶在搜索框中輸入位置,然後以某種方式將其傳遞給GoogleEarth。我引用了EARTHLib,並且實例化了包含只讀SearchController引用的ApplicationGE對象,但是,如果我檢索SearchController引用並嘗試通過Search()方法使用它,則會引發COM錯誤。 – John
我猜測我的GE(v7)版本不贊成使用此功能,因爲谷歌已經明顯地努力擺脫COM API。 我希望我可以使用KML。我試圖通過.NET WebBrowser對象獲取並使用GoogleEarth瀏覽器插件。這是非常奇怪的,IMO,爲什麼這是「首選」的API對我來說沒有多大意義,但除了意見外,我還沒有能夠獲得該API的工作。我的目的可能是心理上的脫節。無論如何,底線是我似乎無法將Google地球嵌入到框架中,並調用任何類型的搜索功能。 – John
另一種方法是允許GoogleEarth作爲單獨的應用程序自行啓動,並讓用戶通過GE的側面板進行搜索。這工作正常,但它分佈在兩個單獨的形式,我試圖避免的UI。 希望這是有道理的... – John