0

我使用以下代码处理带有例如 20 个标记/地址的 json url:

$.getJSON( jsonurl, function(data) { 
    $.each( data.rows, function(i, m) {
            $('#map_canvas').gmap('addMarker',
            { 'icon': new google.maps.MarkerImage(m.a1_gifscan),
           'position': new google.maps.LatLng(m.a1_lat, m.a1_lng),
           'bounds':true }).click(function()

a1_lata1_lng对于 1 个或多个地址为空时,gmap 会在赤道位置放置一个标记,这会破坏我的缩放。

问题; 如何忽略我的代码中的空 lat lng 值?

4

2 回答 2

2

在迭代函数中添加if (m.a1_lat && m.a1_lng)为测试。如果 lat 或 lng 为空,这将阻止创建标记。

于 2013-03-13T16:31:17.300 回答
2

最好的解决方案是从数据源(数据库?)中删除不良数据。

我通常会检查这样的东西(未测试),它会添加一个警报,以便可以解决不良数据:

var lat,lng;
if ((isNaN(lat=parseFloat(m.a1_lat))) ||
    (isNaN(lng=parseFloat(m.a1_lng)))) {
  alert("bad point:"+lat+","+lng);
} else {
  var point = new google.maps.LatLng(lat,lng);
  $('#map_canvas').gmap('addMarker',
      { 'icon': new google.maps.MarkerImage(m.a1_gifscan),
     'position': new google.maps.LatLng(m.a1_lat, m.a1_lng),
     'bounds':true }).click(function() {});     
}
于 2013-03-13T17:09:11.580 回答