0

次のコードを使用して、たとえば20個のマーカー/アドレスを使用してjsonURLを処理します。

$.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_lat1つ以上のアドレスでとが空の場合a1_lng、gmapは赤道位置にマーカーを配置し、スケーリングを台無しにします。

質問; コード内の空のlatlng値を無視する方法は?

4

2 に答える 2

2

if (m.a1_lat && m.a1_lng)反復関数内にテストとして追加します。これにより、緯度または経度が null の場合にマーカーが作成されなくなります。

于 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 に答える