谷歌地图标记没有显示

时间:2014-01-30 19:58:46

标签: google-maps google-maps-markers

我想我知道这个错误是什么:标记的纬度和经度是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);
}

1 个答案:

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