我想我知道这个错误是什么:标记的纬度和经度是Nan而不是坐标......但是为什么???
如果我检查标题(alert(marker.markerTitle);
),它具有正确的值
如果我检查位置(alert(marker.position);
),则返回NaN
HTML:
<script type="text/javascript">
var serviceUrl = {"markers":[{markerLatitude:"12,5741",markerLongitude:"55,70612",markerTitle:"Krudttønden"},{markerLatitude:"11,84656",markerLongitude:"55,96518",markerTitle:"Halsnæs bryghus"},]}
</script>
<div id="google-map"></div>
剧本:
if (jQuery('#google-map')[0]) {
var map_canvas = document.getElementById('google-map');
var startPosition = new google.maps.LatLng('55.92', '10.90');
var mapOptions = { center: startPosition, zoom: 8, streetViewControl: true, panControl: true, draggable: true, mapTypeControl: true, maxZoom: 16, minZoom: 3 };
var map = new google.maps.Map(map_canvas, mapOptions);
for (var i = 0; i < serviceUrl.markers.length; i++) {
var data = serviceUrl.markers[i];
var infowindow = new google.maps.InfoWindow({
content: '<div class="info-window"><h3>' + data.markerTitle + '</h3><p class="teaser"></p></a></div>'
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng(data.markerLatitude, data.markerLongitude),
map: map,
title: data.markerTitle,
infowindows: infowindow
});
//alert(marker.position);
google.maps.event.addListener(marker, 'click', function () {
this.infowindows.open(map, this);
});
}
test = serviceUrl;
console.log(test.markers[0].markerLatitude);
}
答案 0 :(得分:0)
因为输入值是字符串
markerLatitude:"12,5741", markerLongitude:"55,70612"
创建标记时必须使用parseFloat()
数据:LatLng()
方法需要数字。你的代码应该是:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(parseFloat(data.markerLatitude),
parseFloat(data.markerLongitude)),
map: map,
title: data.markerTitle,
infowindows: infowindow
});