我正在将一些旧代码更新到 Google Maps API v3,但我无法让地图显示任何内容。将对象转储map
到控制台显示地图已正确初始化,并且应该加载到正确的 div 中 - 但除了灰色框外什么都没有显示。
我已经为地图 div 设置了宽度/高度和溢出,因为这似乎是最常见的问题。
但是,我无法让它工作。有任何想法吗?
谢谢
我正在将一些旧代码更新到 Google Maps API v3,但我无法让地图显示任何内容。将对象转储map
到控制台显示地图已正确初始化,并且应该加载到正确的 div 中 - 但除了灰色框外什么都没有显示。
我已经为地图 div 设置了宽度/高度和溢出,因为这似乎是最常见的问题。
但是,我无法让它工作。有任何想法吗?
谢谢
<!DOCTYPE html>
<html>
<head>
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<style>
#map_canvas { height: 200px; width: 400px; overflow: visible; }
</style>
</head>
<body>
<div id="map_canvas"></div>
<script>
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var mapOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
</script>
</body>
</html>
这对我有用。
之间有很大区别
var maptype = 'google.maps.MapTypeId.HYBRID';
var mapInitOpts = {
mapTypeId: maptype
};
和
var mapInitOpts = {
mapTypeId: google.maps.MapTypeId.HYBRID
};
在一个实例中,您将文本“google.maps.MapTypeId.HYBRID”分配给 mapTypeId,另一个实例将变量 google.maps.MapTypeId.HYBRID 的值分配给 mapTypeId。
为了让你的例子起作用,你至少应该把
var maptype = google.maps.MapTypeId.HYBRID;
不是
var maptype = 'google.maps.MapTypeId.HYBRID';
此外,我无法让我的示例在没有 zoom: 和 center: 的情况下工作。这些可能是必需的。
您将 mapTypeId 常量放在引号中,“google.maps.MapTypeId.HYBRID”;这是一个常量,而不是字符串:google.maps.MapTypeId.HYBRID
此外,您需要提供地图中心和缩放级别。这有效:
var mapInitOpts = {
mapTypeId: google.maps.MapTypeId.HYBRID,
center: new google.maps.LatLng(-32.891058,151.538042),
zoom: 16
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapInitOpts);
最后,您不再需要提供 API 密钥。