所以这是另一个关于在WinForms
WebControl
中有效渲染google地图的问题。
有两种解决方案,一种是添加特定的注册表项(See this article),另一种是使用<meta http-equiv="X-UA-Compatible" content="IE=edge">
(如果您拥有所显示页面的HTML)。
由于我们在自己的服务器上托管google-maps
html
和脚本文件,因此可以修改html
文件。因此,我们已经尝试了,但是这会导致WebControl根本无法呈现html
文件(显示灰色空间)。另一方面,IE运行良好。
我们测试的工作站已经安装了IE 11。
下面是我们的html
文件。我们做错什么了吗?有人遇到过类似的行为吗?如何解决这个问题?
<?xml version="1.0" encoding="UTF-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex" />
<title>Mapa</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.22&libraries=geometry&sensor=false"></script>
<!-- multiple javascript files -->
<script type="text/javascript">
var map;
var panorama;
function initialize() {
var myOptions = {
zoom: 6,
center: new google.maps.LatLng(0.0, 0.0),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
panorama = map.getStreetView();
/* some init functions */
}
</script>
</head>
<body style="margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;" onload="initialize()">
<div id="map_canvas" style="width: 100%; height: 100%">
</div>
</body>
</html>
对不起,
<!-- multiple javascript files -->
和/* some init functions */
但是我不得不把这些部分剪掉。这只是<script type="text/javascript" src="..."></script>
行和第二个函数调用。如果这两个部分真的很重要并且能解决问题,我可以试着把它们贴出来。。不知怎么的。请注意,无论我们在
content="IE=edge"
部分、edge
或任何其他版本号中使用什么,结果都是相同的。下面是使用
WebControl
时X-UA-Compatible
的屏幕。(显然,红色文本是用剪贴工具制作的;)
See this article
最佳答案
我与创建另一个浏览器组件的团队一起工作–DotNetBrowser。
我认为这个组件将有助于您的情况,因为它是基于Chromium引擎,应该呈现谷歌地图没有任何问题。
关于c# - Winforms,WebControl,Google Maps和无效渲染,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37520590/