我尝试根据邮政编码在静态(非谷歌)地图上设置标记。
这是我的html代码:
<div ng-controller="DealerMarkerListCtrl">
<a href="#/dealer/{{marker.id}}" class="marker" style="left:{{marker.left}}px;top:{{marker.top}}px" ng-repeat="marker in dealer|zipFilter:countryLookup"></a>
</div>
现在我尝试显示按邮政编码和国家/地区过滤的所有标记,这是下拉列表:
<input type="text" name="plz" placeholder="PLZ (z.B 80469)" class="plz" ng-model="zipCodeLookup">
<select name="drop" tabindex="1" class="drop" id="dropcountry" ng-model="countryLookup" ng-options='option.value as option.name for option in typeOptions'>
</select>
我得到了以下过滤器:
app.filter("zipFilter", function() { return function(markers, country, zip) {
var retMarkers = [];
for(var i = 0, len = markers.length; i < len; ++i) {
var singleMarker = markers[i];
if(singleMarker.land == country) {
retMarkers.push(singleMarker);
}
}
return retMarkers;
}});
主要问题是:
我得到了一个外接环搜索,我得到了用户邮政编码周围 20(公里/英里)内的所有邮政编码。这工作正常。当我直接访问框架(不在控制器内)时,我得到一个这样的 json:
{"plz":["44787","44789","44791","44793","44795","44797","44799","44801","44803","44805","44807","44809","44866","44867","44869","44879","44892","44894","45525","45527","45529","45549"]}
对于邮政编码“45525”。
现在我需要显示这个邮政编码数组中的所有标记(经销商)。
需要将过滤器中的 zip 参数和 country 参数一起发送到“区域搜索”功能“files/framework/umkreis/:zip/:country”以获取该区域的 zip json。
之后我需要检查一些标记是否在这个 json 中并过滤它们。
我只是不知道,如何将这些东西构建到我的过滤器中。你能帮我解决这个问题吗?非常感谢。
其他有用信息:
路线和服务:
app.factory('dealerService', ['$resource', '$http', '$rootScope', function($resource, $http, $rootScope){
return {
//the resource provider interacting with the PHP backend
api:
$resource('files/framework/dealer/:id', {}, {
update: {method:'PUT'}
}),
}
}])
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/dealer/:id', {templateUrl: 'files/tpl/dealer-details.html', controller: 'DealerDetailsCtrl'}).
otherwise({redirectTo: '/dealer'});
}]);
获取区域邮政编码的“Slim”框架的路径是:
files/framework/umkreis/45525/DE
or
files/framework/umkreis/:zip/:country