我正在使用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);
}
答案 0 :(得分:2)
您将marker1
设置为Javascript对象而不是google maps marker
对象,因此它没有google标记所做的setMap()
方法。要将其设置为地图标记对象,您需要使用
var marker1 = new google.maps.Marker({