Member 12848173 Ответов: 0

Фильтр маркеров 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, но это не сработало

0 Ответов