我正在使用谷歌地图js来显示地图并在其上加载标记。它工作正常。但突然出现以下错误
“InvalidValueError:setMap:不是Map的实例;而不是StreetViewPanorama的实例”
这是我正在使用的代码
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
$(document ).ready(function(){
var lax;
var lox;
var zlevel = Math.round(14-Math.log(20)/Math.LN2);
var userLatLng = new google.maps.LatLng(lax, lox);
var myOptions = {
zoom : zlevel ,
center : userLatLng,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
// Draw the map
var mapObject = new google.maps.Map(document.getElementById("map"), myOptions);
var userLatLng = new google.maps.LatLng(lat1, lon1);
var marker = new google.maps.Marker({
map: mapObject,
icon: './images/icons/regular.png',
position: userLatLng,
title:name,
url: './index.php',
});
var userLatLng = new google.maps.LatLng(lat2, lon2);
var marker = new google.maps.Marker({
map: mapObject,
icon: './images/icons/regular.png',
position: userLatLng,
title:name,
url: './index.php',
});
google.maps.event.addListener(marker, 'click', function() {
window.location.href = this.url; //changed from markers[i] to this[i]
});
marker.setMap(map);
});
<div id="map"></div>
有人能告诉我这是什么问题吗?什么是修复?
由于
答案 0 :(得分:0)
删除此行:
marker.setMap(map);
map
不是google.maps.Map
(它是div)
您根本不需要此行,因为已map
的{{1}} - 属性已设置。
您需要的是变量(marker
),如果没有它们,您将无法获得地图和标记
答案 1 :(得分:0)
使用这种方式: -
$(document).ready(function(){
var gtpCoOrdsGTP = new google.maps.LatLng(12.97283,77.72024);
var mapPropGTP = {
center:gtpCoOrdsGTP,
zoom:18,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var mapGTP=new google.maps.Map(document.getElementById("googleMapGTP"),mapPropGTP);
var markerGTP = new google.maps.Marker({
position: gtpCoOrdsGTP,
map: mapGTP,
title: "my title"
});
});
答案 2 :(得分:0)
在您的代码中,您按如下方式初始化了地图:
(a -> b)
您可以在标记中设置地图,如下所示
// Draw the map
var mapObject = new google.maps.Map(document.getElementById("map"), myOptions);
应该是
marker.setMap(map);
下面的代码将工作为perfaclty。
marker.setMap(mapObject);