我有一個很久沒有使用的應用程序,客戶端想激活它。關鍵是這個應用程序使用了winforms-geplugin-control-library,並且該組件停止工作超過一年,因爲它引用了已棄用的Google Earth API。Google Maps API出現錯誤
是否有任何組件類似,允許原始功能或至少某個特定級別的.NET(C#)可操作性?
我有一個很久沒有使用的應用程序,客戶端想激活它。關鍵是這個應用程序使用了winforms-geplugin-control-library,並且該組件停止工作超過一年,因爲它引用了已棄用的Google Earth API。Google Maps API出現錯誤
是否有任何組件類似,允許原始功能或至少某個特定級別的.NET(C#)可操作性?
請看看這裏:
http://www.c-sharpcorner.com/uploadfile/raj1979/using-google-earth-in-a-windows-forms-application/
入門:
讓我們開始吧。
使用Windows窗體在Visual Studio 2005或2008或更高版本中創建一個新的Windows應用程序。
現在將工具箱中的Web瀏覽器控件拖放到窗體上。
當您在機器上安裝Google地球時,您將運行GoogleEarth.exe。在安裝了Google地球的計算機上找到此exe文件,並將GoogleEarth.exe添加到Windows窗體應用程序的bin文件夾中。
現在添加一個新的HTML頁面到您的Windows窗體應用程序,並通過填充代碼到您的HTML頁面。
此腳本密鑰由Google提供。
<script src="http://www.google.com/jsapi?key=ABQIAAAAOh61kmAMajizdQht- Zz3MhReSrBDmGipqiQxKIYFIGIHpqaJ1BRq6XLUD-i7BPkx7XreIBQJ1MetxQ"> </script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Sample</title>
<script src="http://www.google.com/jsapi?key=ABQIAAAAOh61kmAMajizdQht- Zz3MhReSrBDmGipqiQxKIYFIGIHpqaJ1BRq6XLUD-i7BPkx7XreIBQJ1MetxQ"> </script>
<script type="text/javascript">
var ge;
google.load("earth", "1");
function init() {
google.earth.createInstance('map3d', initCB, failureCB);
}
function initCB(instance) {
ge = instance;
ge.getWindow().setVisibility(true);
ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);
}
function failureCB(errorCode) {
}
google.setOnLoadCallback(init);
</script>
</head>
<body>
<div id="map3d" style="height: 400px; width: 600px;">
</div>
</body>
</html>
現在設置Web瀏覽器控件的URL到.htm頁的位置,你剛剛添加到您的應用程序在後面的代碼。您可以在Form's Load事件處理程序中編寫此代碼。
this.webBrowser1.Url = new System.Uri(System.Environment.CurrentDirectory + "\\" + "Files\\MyGoogleEarthFile.htm", System.UriKind.Absolute);
現在構建並運行應用程序。
或在這裏看到其他實施:
https://www.codeproject.com/Tips/889136/Csharp-Google-Maps-in-WinForm-with-WebBrowser-and
谷歌提供,包括在HTML頁面與maps.google.com同樣功能的映射一個JavaScript API。
在版本v2中,您需要註冊才能獲取使用該庫的API密鑰,而v3版本是可選的,但建議您使用該API,因爲API有限制,如果需要更多信息,則每天只能生成25,000張地圖你需要付出,所以你需要註冊,如果你註冊,你可以:
獲取每天產生的額外的地圖(超過25,000每天) 收費地圖的統計 限制使用您的密鑰,以防止使用在未經授權的網站上
感謝您的幫助,但我有相同的迴應:「var error = new Error(」Module:'earth'not found!「); error.toString = function(){return this.message;} throw error ; 「多數民衆贊成是不贊成使用的API。 – xavendano
刪除舊的winforms-geplugin-control-library並在回答中使用上述示例之一 –
我使用Maps API 3.21製作了一個全新的項目,一切都很好,直到onions.js出現錯誤。顯然,這是默認使用Visual Studio的嵌入式API和WebBrowser的兼容性問題。 – xavendano
最後經過多次測試並遵循該組的優秀建議後,另一篇帖子的建議Google Maps Script error in Onion.js顯然解決了這種情況,當然應該是與IE和JavaScript中的Google Maps API的嵌入式WebView類型對象的兼容性問題。
將meta放到HTML支持的兼容性:
我認爲答案是「否」。我們僅在安裝了GEPro的PC上通過KML使用GE。 AFAIK沒有取代舊的API功能。希望我錯了。你需要什麼API函數? – rheitzman
我仍然處於偵測模式,以確定程序的功能,但API的問題消耗了我很多時間。我設法改變了地球對地圖API的使用,甚至做了一些例子,但現在我有一個onis.js的問題,顯然是一個IE相關的主題或WebBrowser使用。 – xavendano
您已經意識到您在混合使用Google地球和Google地圖 - 對嗎? Google地球已安裝桌面軟件。 Google地圖是一個基於雲的系統。 – rheitzman