2013-03-13 2 views
0

Я обрабатываю json-url, например. 20 маркеров/адреса с помощью следующего кода:как игнорировать lat & lon NULLS при создании маркеров 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_lat и a1_lng пустует 1 или более адресов, то GMap ставит маркер на положении экватора, который разрушает мое масштабирование.

Вопрос; как игнорировать пустые значения lat lng в моем коде?

+0

Когда вы говорите пустое вы имеете в виду пустую строку, пустой или не определено? Во всяком случае, просто 'if' внутри цикла должно помочь ... – Tallmaris

ответ

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

thanks; работает как шарм. –

2

Добавить if (m.a1_lat && m.a1_lng) как тест внутри вашей итерационной функции. Это предотвратит создание маркера, если lat или lng являются нулевыми.