Google地图未显示。错误InvalidValueError:setMap:不是Map的实例;而不是StreetViewPanorama的实例

时间:2014-11-07 23:44:28

标签: google-maps

我正在使用谷歌地图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>

有人能告诉我这是什么问题吗?什么是修复?

由于

3 个答案:

答案 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);