2013-03-13 67 views
0

我使用例如处理json url用下面的代码20点的标记/不会忽略:如何在创建gmap标记时忽略经度和纬度

$.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一个标记在其上毁了我的缩放赤道位置。

问题;如何忽略我代码中的空白经纬度值?

+0

当你说空你的意思是空字符串,null或undefined?无论如何,只是一个'if'循环内应该有所帮助... – Tallmaris 2013-03-13 16:29:20

回答

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() {});  
} 
+0

谢谢;奇迹般有效。 – 2013-03-13 20:10:29

2

添加if (m.a1_lat && m.a1_lng)作为您的迭代函数中的测试。这将防止在lat或lng为空时创建标记。