如何在创建gmap标记时忽略lat& lon NULLS

时间:2013-03-13 16:24:57

标签: javascript jquery json google-maps if-statement

我处理一个json网址,例如20个标记/地址,代码如下:

$.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对于一个或多个地址为空时,gmap会在赤道位置放置一个标记,这会破坏我的缩放。

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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() {});     
}