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脚本产生错误。
你能给我一些帮助吗,我不明白为什么会有这个错误,找到主题或代码示例很难。
谢谢你读我的书。
误差我了解您的应用程序使用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