我的地图有问题。地图在5个月前正常工作。现在当我用我的坐标加载地图时,地图正在加载,但是当我开始浏览地图,缩放等时,我得到的白色屏幕就像没有与地图的连接..我需要再次加载地图,但同样的问题又发生了。大约5个月前我使用这个脚本,一切都工作正常..浏览,缩放,更改地图类型,一切都没有任何问题。我根据谷歌网站创建了html代码并将其放入新的资源文件中:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function load(latitude,longitude,zoomik) {
var myLatlng = new google.maps.LatLng(latitude,longitude);
var myOptions = {
zoom: zoomik,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Here!"});
}
</script>
</head>
<body onload="load()">
<div id="map_canvas"></div>
</body>
</html>
我的按钮代码是:
private void TestButton_Click(object sender, EventArgs e)
{
webBrowser1.Document.InvokeScript("load", new object[] { -34.397, 150.644, 8 });
}
屏幕: 正确加载地图:
使用平移工具或缩放工具后: - 空白屏幕。
我正在使用winforms中的Visual C#Express和WebBrowser控件。
HTML代码在Firefox中正常运行(使用Aptana Studio)(缩放和平移工作正常)
来自google api示例的此代码还无法正常运行:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>
答案 0 :(得分:1)
我自己也想过这个。
错了:
<div id="map_canvas"></div>
将其更改为:
<div id="map_canvas" style="width:500px; height:400px"></div>
地图正常运作。
答案 1 :(得分:0)
当我遇到gMaps问题时,我要做的第一件事就是更改地图密钥,你试试这个吗?您尝试过哪些浏览器? Firefox,Chrome还是IE?
答案 2 :(得分:0)
我在使用Google Maps v3时遇到了类似的问题。虽然,我的问题是我定位了当前的Google Maps v3 API,并且他们“弃用”了一个名为set_map
的被调用者,并引入了与setMap
相同的功能。
我的代码中没有看到任何应该被破坏的内容。如果此页面上有其他JavaScript引发错误,则有时会导致Google地图无法加载。例如,如果您引用其他一些抛出未捕获异常的JavaScript,则可能无法加载地图。
我的建议是指定Google Maps API的版本而不是使用当前版本,看看是否修复了它:
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?v=3.3&sensor=false">
</script>
编辑:同样,再次查看您的帖子,您可能想要移动用于设置标记的逻辑并将缩放映射到加载函数之外。这样,当您单击按钮时,您不会重新初始化地图和选项。前几天我在on文档中看到地图现在有div选项的“清除”选项,并且加载地图两次(正文加载,按钮点击)可能会强制清除行为。同样,针对之前的API版本,它可能会起作用。
答案 3 :(得分:-1)
也许您可以在Flash中加载谷歌地图而不是在WebBrowser对象中加载?以下链接说明了如何使用WPF进行操作,但它应该很容易应用于WinForms:http://code.google.com/intl/fr/apis/maps/articles/flashmapinwpf.html