c#谷歌地图API - HTML部分的javascript错误

本文关键字:javascript 错误 HTML 谷歌地图 API | 更新日期: 2023-09-27 18:17:07

我最近想使用googlemap api在一个简单的c# windows窗体与visual studio的地图上显示一些标记。

我使用一个"web browser"组件来显示一个生成的html文件,该文件带有google plus自定义坐标的基本html代码。

        const string htmlPath = "D:/map.html";
        StreamWriter sw = new StreamWriter(htmlPath, false, System.Text.Encoding.GetEncoding(437));
        string centerLongitude = centerLongitudeTextBox.Text;
        string centerLatitude = centerLatitudeTextBox.Text;


        sw.WriteLine("<!DOCTYPE html>");
        sw.WriteLine("<html>");
        sw.WriteLine("<head>");
        sw.WriteLine("<meta charset='"utf-8'">");
        sw.WriteLine("<style>");
        sw.WriteLine("html, body, #map{");
        sw.WriteLine("margin :0;");
        sw.WriteLine("padding: 0;");
        sw.WriteLine("height: 100%");
        sw.WriteLine("}");
        sw.WriteLine("</style>");
        //sw.WriteLine("<link rel='"stylesheet'" href='"/maps/documentation/javascript/demos/demos.css'">");
        sw.WriteLine("</head>");
        sw.WriteLine("<body>");
        sw.WriteLine("<div id='"map'"></div>");
        sw.WriteLine("<script>");
        sw.WriteLine("function initMap() {");
        sw.WriteLine("// Create a map object and specify the DOM element for display.");
        sw.WriteLine("var map = new google.maps.Map(document.getElementById('map'), {");
        sw.WriteLine("center: { lat: "+ centerLatitude +", lng: "+ centerLongitude +"},");
        sw.WriteLine("scrollwheel: false,");
        sw.WriteLine("zoom: 8");
        sw.WriteLine("});");
        sw.WriteLine("}");
        sw.WriteLine("</script>");
        sw.WriteLine("<script src='"https://maps.googleapis.com/maps/api/js?key=MYKEY of course&callback=initMap'"");
        sw.WriteLine("async defer></script>");
        sw.WriteLine("</body>");
        sw.WriteLine("</html>");
        sw.Close();
        webBrowser1.Navigate("file:///" + htmlPath);

这个代码工作得很好,但是我的应用程序告诉我java脚本产生错误。

你能给我一些帮助吗,我不明白为什么会有这个错误,找到主题或代码示例很难。

谢谢你读我的书。

误差

c#谷歌地图API - HTML部分的javascript错误

我了解您的应用程序使用Web浏览器控件,模拟某个版本的IE。

请注意,当前版本的Maps JavaScript API既不支持旧的IE版本也不支持兼容模式。您应该使用文档中提到的受支持的浏览器:

https://developers.google.com/maps/documentation/javascript/browsersupport

如果你正在使用WebBrowser控件,它可以默认为IE 7的呈现模式:https://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version

从上面的文章中可以看到,您可以在注册表中编写一些内容来强制控件使用较新的IE版本。建议至少指定版本10。

http://www.codeproject.com/Articles/793687/Configuring-the-emulation-mode-of-an-Internet-Expl在浏览器控件

中使用最新版本的Internet Explorer

另外,您可以添加像

这样的元标记

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10" />

<meta http-equiv="X-UA-Compatible" content="IE=edge">

在你的html页头部分,以强制呈现模式的现代版本的IE。

作为替代解决方案,您可以考虑使用不同的web浏览器嵌入控件。例如,你可以查看Chromium Embedded Framework。

https://en.wikipedia.org/wiki/Chromium_Embedded_Framework

在公共问题跟踪器中也有一个有用的讨论:

https://code.google.com/p/gmaps-api-issues/issues/detail?id=9004