Доступ к меткам KML в наложении Google Maps через Javascript?

У меня есть наложение файла KML на встроенную карту Google с помощью объекта GGeoXml. Я хотел бы иметь доступ к определенным меткам в файле KML из Javascript (например, для выделения выбранного многоугольника на карте в ответ на действие пользователя).

В идеале я хотел бы сделать что-то вроде этого (псевдокод):

 geoXml.getPlacemarkByName('Foo').focus();

К сожалению, Google Maps API, похоже, не раскрывает метки или какие-либо другие внутренние элементы наложения KML. Есть ли у кого-нибудь мысли о том, как я могу это сделать? Я ничего не знаю о внутренней реализации оверлеев, но похоже, что есть хак, который позволил бы мне это сделать.

Я также использую jQuery FWIW.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
7 009
4

Ответы 4

Вы смотрели GeoXML?

Кажется, что нет простого решения этой проблемы, поскольку Google не предоставляет ответ в API. Я нашел единственный способ получить доступ к отдельным меткам - это «захватывать» их, когда они добавляются на карту. Для этого вы должны установить прослушиватель addoverlay для объекта карты. Что-то вроде этого:

GEvent.addListener(map, 'addoverlay', function(o) {
    kmlmarkers.push(o);
}

Однако я не мог придумать способ получить идентификатор метки из объекта-маркера. Поэтому единственный способ получить доступ к определенным меткам - это пройти через массив и сопоставить маркеры с моими данными на основе координат. Это не настоящее элегантное решение, но это единственный способ заставить его работать.

Вы можете понять это, просто взглянув на объект следующим образом:

GEvent.addListener(map, 'addoverlay', function(obj)
{ if (!obj) {
        alert("Cannot describe a null object");
        return;
    }
    var str = "";

        for ( var prop in obj) {
            str += prop + " = " + obj[prop] + ",\n";
        }
        alert(str);
    });

Это должно помочь ...

Посмотрите на Kml Update. Вам понадобится ID парковки.

Другие вопросы по теме