我处理一个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_lat
和a1_lng
对于一个或多个地址为空时,gmap会在赤道位置放置一个标记,这会破坏我的缩放。
问题;如何忽略我的代码中的空lat lng值?
答案 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() {});
}