Object不支持属性或方法'setMap'

时间:2015-06-13 19:58:45

标签: javascript html ajax google-maps

我正在使用JqueryMobile设计我的代码,现在我得到了这个奇怪的错误(我之前没有得到):Object不支持属性或方法'setMap'。 结果,getCurrentPosition无法正常工作,我无法获得实际用户的位置。

这是包含链接的代码:

    

<link href="omgapp-theme/themes/jquery.mobile.icons.min.css" rel="stylesheet" />
<link href="omgapp-theme/themes/omgapptheme.css" rel="stylesheet" />
<link href="omgapp-theme/themes/omgapptheme.min.css" rel="stylesheet" />


<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile.structure-1.4.5.min.css" />
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>


<!-- menu -->
<link rel="stylesheet" href="assets/css/styles.css" />
<link rel="stylesheet" href="assets/font-awesome/css/font-awesome.css" />


<!--autocomplete-->
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>


<!--**************************************popup info************************************-->
<link href="the-modal-master/demo-modals.css" rel="stylesheet" />
<script src="the-modal-master/jquery.the-modal.js"></script>
<link href="the-modal-master/the-modal.css" rel="stylesheet" />


<script src="AjaxCall.js"></script>

<style type="text/css">
    /*This Css code  makes the maps work with jQueryMobile*/

    #content {
        padding: 0 !important;
        position: absolute !important;
        top: 40px !important;
        right: 0 !important;
        bottom: 40px !important;
        left: 0 !important;
    }

    #gpsIcon {
        height: 2em;
    }

    html, body, #map-canvas {
        height: 450px;
        margin: 0px;
        padding: 0px;
    }

    html, body, #map-canvas1 {
        height: 450px;
        margin: 0px;
        padding: 0px;
    }

    html, body, #map-canvas2 {
        height: 450px;
        margin: 0px;
        padding: 0px;
    }

    p.marker {
        color: black;
        direction: rtl;
        font-family: Arial;
    }

    [data-role=footer] {
        bottom: 0;
        position: absolute !important;
        top: auto !important;
        width: 100%;
    }
</style>

这是创建错误的部分:

function getCurrentPosition_Success(position){

        if (counter > 0)
            for (var i = 0; i < markers.length; i++) {
                markers[i].setMap(null);
                markers = [];
                counter = 0;
            }

        co = position.coords; // set a short variable for conviniece
        var pos = new google.maps.LatLng(co.latitude, co.longitude);
        var marker1 = {//the radius marker
            strokeColor: '#0000FF',
            strokeOpacity: 0.5,
            strokeWeight: 2,
            fillColor: '#0000FF',
            fillOpacity: 0.35,
            map: map,
            center: pos,
            radius: 5,
            title: 'You Are Here',
        };
        CircleRadius = new google.maps.Circle(marker1);
        markers.push(marker1);
        counter++;
        map.setCenter(pos); // center the map around the position of the user

        request = {
            nodeNumber: num,//destNum
            posX: co.latitude,
            posY: co.longitude
        }
        getDistance(request, getDistanceSuccessCB, getDistanceErrorCB);

    }

1 个答案:

答案 0 :(得分:2)

您将marker1设置为Javascript对象而不是google maps marker对象,因此它没有google标记所做的setMap()方法。要将其设置为地图标记对象,您需要使用

var marker1 = new google.maps.Marker({