使用矩形从列表中过滤Lat和Long

时间:2014-04-10 02:39:43

标签: javascript jquery html json coordinates

我这里有一个程序,它从json对象中提取一些信息并将其显示在页面上。在这种情况下公共自行车站。 json对象提供了每个站点纬度和经度的列表,因此找到这些点不是问题。

我正在尝试过滤列表以仅显示位于用户输入的lat和长坐标的矩形内的电台。

我不知道如何从超出矩形的json列表中过滤掉lat和long

      $(document).ready(function() {
        $("#createlist").click(function() {
            var upperleftlatitude = Number($("#upperleftlatitude").val());
            var upperleftlongitude = Number($("#upperleftlongitude").val());    
            var lowerrightlatitude = Number($("#lowerrightlatitude").val());    
            var lowerrightongitude = Number($("#lowerrightongitude").val());    

这就是我感到困惑的地方。我想我会写一个if语句,如果json列出lat和long是在矩形区域内,基于用户给出的coords只显示这些站但我不知道如何写它

                  if ( ){
                    var table_row = "<tr class='stationrow'>"
                    table_row += "<td>" + station.stationName + "</td>";
                    table_row += "<td class='numeric'>" + station.availableDocks + "</td>";
                    table_row += "<td class='numeric'>" + station.availableBikes + "</td>";
                    table_row += "<td class='numeric'>" + station.latitude + "</td>";
                    table_row += "<td class='numeric'>" + station.longitude + "</td>";
                    table_row += "</tr>";
                    $("#stationtable").append(table_row);
                }   
            total_bikes_available += station.availableBikes;
            });
        $("#totalbikesavailable").html(total_bikes_available);
        });
    });
});

1 个答案:

答案 0 :(得分:1)

假设您要检查的坐标为station.latitudestation.longitude,并且四边都按照您在代码中指明的方式命名,则条件变为

if(station.latitude < lowerrightlatitude && station.latitude > upperleftlatitude && station.longitude < upperleftlongitude && station.longitude > lowerrightlongitude)

这假设您的变量名称是明确指示它们在矩形中的位置。您可能想要说服自己,当符号发生变化时仍然可以使用(使用西经度和南纬的-ve值,你应该没问题。)