Фильтр маркеров Google maps geojson по типу
Мне удалось добавить маркеры, которые показывают каждый аэропорт в мире на карте Google. Однако я застрял, когда мне нужно отфильтровать несколько групп категорий:
Тип аэропорта: малый, большой, средний, закрытый
Страна: IE, RUS, US и т. д.
Я хочу создать кнопку, которая может фильтровать, какой тип аэропорта отображается на карте. Поэтому, когда я нажимаю маленький, отображаются маленькие аэропорты, когда я нажимаю большой, отображаются большие аэропорты и т. д. То же самое происходит и со странами.
Данные всех аэропортов поступают из файла. json. Ниже я привел пример аэропорта. Я также предоставил скриншот того, как выглядит карта на веб-странице.
Код, который я использовал:
main.html
var infowindow = новый google. maps.InfoWindow();
функция gotoFeature(featureNum) {
характеристика ВАР = карте.данных.getFeatureById(функций[featureNum].getId());
если (!!функция) Гугл.карты.событие.триггер(функция, 'изменить указатель', {характеристика: характеристика});
else alert ("функция не найдена!");
}
карте.данных.функция метод addlistener('нажмите', (событие) {
var myHTML = event.feature. getProperty ("описание");
var myHTML = event.feature. getProperty ("описание");
категории Варе = ["wikipedia_link", "local_code", "ИД", "ключевые слова", "home_link", "latitude_deg", "longitude_deg", "iso_region", "муниципалитет", "gps_code"];
функция excludeCat(d) {
if (categories. indexOf (d. split(":")[0]) < 0) {
возвращение д
};
};
myHTML = myHTML. split("
"). filter (excludeCat). join("
");
infowindow.setContent("
"+myHTML+"
");infowindow.setposition для(событие.характеристика.getGeometry().вам());
infowindow. setOptions ({pixelOffset: new google. maps. Size(0,-30)});
infowindow.открыть(карту);
});
.данные в формате JSON аэропорт :
{"тип": "характеристика"," свойства": {"название":" вертодром павильона Инсбрук", "описание": "id: 16018
идент: 9VA8
тип: вертодром
latitude_deg: 37.648799896240234
longitude_deg: -77.58499908447266
elevation_ft: 250
континент: на
iso_country: США
iso_region: США-ва
город: Ричмонд
scheduled_service: нет
gps_code: 9VA8
iata_code:
local_code: 9VA8
home_link:
wikipedia_link:
ключевые слова:"}, "геометрия": {"тип": "точка", "координаты": [ -77.584999084472656, 37.648799896240234, 0.0 ] } }
Что я уже пробовал:
Я пробовал решения Javascript, но это не сработало