Map AngularJS-范围搜索

Map AngularJS-范围搜索,map,angularjs,range,marker,Map,Angularjs,Range,Marker,我对AngularJS很陌生,但它绝对适合我的项目 这是我的问题: 我的客户有一个静态编码地图(不是谷歌)。在这张地图上,我们有15家服装经销商(硬编码) 我的json文件: [ { "id": "2", "name": "Laden Dortmund", "zip": 12345, "stadt": "Dortmund", "land": "DE", "left": "200px", "top": "300px" }, { "id

我对AngularJS很陌生,但它绝对适合我的项目

这是我的问题:
我的客户有一个静态编码地图(不是谷歌)。在这张地图上,我们有15家服装经销商(硬编码)

我的json文件:

[
{
    "id": "2",
    "name": "Laden Dortmund",
    "zip": 12345,
    "stadt": "Dortmund",
    "land": "DE",
    "left": "200px",
    "top": "300px"
},
{
    "id": "1",
    "name": "Laden Unna",
    "zip": 45568
    "stadt": "Unna",
    "land": "DE",
    "left": "250px",
    "top": "400px"
}
]
等等……
使用“左”和“顶”,我正在用记号笔标记我的地图:

<div class="map" ng-controller="DealerDetailListCtrl">
    <a class="marker" id="{{marker.id}}" style="left:{{marker.left}};top:{{marker.top}}" ng-repeat="marker in dealer"></a>
</div>  

这对所有条目都有效。
现在,我们的客户需要对条目进行邮政编码搜索。比如:
-经销商1(邮政编码:45525)->应位于地图的该区域。
-经销商2(邮政编码:12345)->应位于地图的xx区域。 等等

我需要的是:
Angular JS是否可以有这样的搜索框:

<input type="text" name="postalcode" class="postalcode" ngRequired>

如果要搜索(例如)“45525”,我会得到该邮政编码中+/-的所有标记?
也许每个条目都会得到两个新节点“RangeStart”(开始:40000)和“RangeEnd”(结束:50000),如果我搜索“45525”,所有条目都会显示出来,其中搜索词与范围一起插入


这可能吗?

我当时正在烤苹果派,所以无法更快地与您联系,但您在评论中提到的定制过滤器也可能实现这一点

myApp.filter("zipFilter", function() { return function(markers, zipCode) {

    var retMarkers = [];
    var lowRange = parseInt(zipCode, 10) - 1000;
    var highRange = parseInt(zipCode, 10) + 1000;

    // console.log('low: ' + lowRange);
    // console.log('high: ' + highRange);

    // loop through all the markers
    for(var i = 0, len = markers.length; i < len; ++i) {
        var singleMarker = markers[i];
        // if the marker falls within the range (+/- 1000)...
        if(singleMarker.zip >= lowRange && singleMarker.zip <= highRange) {
            retMarkers.push(singleMarker);
        }
    }

    return retMarkers;
}});
myApp.filter(“zipFilter”,function(){返回函数(markers,zipCode){
var=[];
var lowRange=parseInt(zipCode,10)-1000;
var highRange=parseInt(zipCode,10)+1000;
//console.log('低:'+低范围);
//console.log('高:'+高范围);
//在所有的标记中循环
对于(变量i=0,len=markers.length;i如果(singleMarker.zip>=lowlange&&singleMarker.zip)可以使用自定义过滤器?有人知道吗?您是否考虑在JSON中的每个标记对象中添加一个“zip”属性,以便“loaded Dortmund”的zip为23456,例如?该死,我不小心删除了这一行(JSON条目比这个示例长得多)。有一个zip属性…(将立即编辑)它工作得很好。我对它进行了一点修改。是否有可能在筛选器中添加“country”下拉列表?我得到了zipcode的输入和国家的“DE,AT,CH”下拉列表。我可以轻松地将countrymodal作为参数添加到筛选器中吗?它向我显示了一个“TypeError:无法读取变量“markers”的“undefined”的属性“length”。是的,这不应该是一个问题,我可以向您展示如何-您可以共享指向正在处理的代码的链接吗?(可能是JSFIDLE?)。