不推荐使用Google Maps API时出错

时间:2017-03-13 14:22:43

标签: c# .net winforms google-earth-plugin

我有一个很长时间未使用的应用程序,客户端想要激活它。关键是这个应用程序使用了winforms-geplugin-control-library,该组件停止工作超过一年,因为它引用了一个弃用的Google Earth API。

是否有类似的组件允许原始功能或至少某种程度的.NET(C#)可操作性?

GEPluginCtrls Earth not found

2 个答案:

答案 0 :(得分:1)

请看这里:

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&#39的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

Google提供了一个JavaScript API,用于在HTML网页中包含与maps.google.com功能相同的地图。

在版本v2中,您需要注册以获取使用该库的API密钥,版本v3是可选的,但建议使用它,因为API有限制,您只能生成25,000个地图每天,如果您需要更多费用,则需要注册,如果您注册,则可以:

获取每天生成的地图的统计数据 支付额外的地图(每天超过25,000) 限制使用密钥以防止在未经授权的网站上使用

答案 1 :(得分:1)

经过多次测试并遵循小组的优秀建议后,另一篇帖子Google Maps Script error in Onion.js的建议显然解决了这个案例,当然应该是IE和谷歌地图API在Javascript中的嵌入式WebView类型的兼容性问题对象

将meta设置为支持HTML的兼容性: