Я разрешаю пользователю создавать, редактировать и удалять многоугольники на картах Google. Пользователь может решить ввести текст для каждого многоугольника, который должен затем появится в информационном окне при щелчке по многоугольнику. Код ниже показывает, как это возможно. Моя проблема в том, что в настоящее время я не могу определить местоположение события клика - мне нужно это знать, так как именно здесь будет отображаться информационное окно. Я пробовал так много способов получить эту работу.
В приведенном ниже коде tmfPolygonObjects[i][9] содержит текст, который будет отображаться в информационном окне.
Мне как-то нужно зафиксировать событие в функции, но я не могу это решить. Любой совет будет очень кстати...
function tmfAddPolygonInfoWindowListener(myPolygon, i, myPolygonInfoWindow) {
tmfPolygon = myPolygon;
tmfPolygonInfoWindow = myPolygonInfoWindow;
tmfShowPolygonInfoWindowListener[i] = google.maps.event.addListener(tmfPolygon, 'click', (function(tmfPolygon, i) {
return function() {
tmfPolygonInfoWindow.setContent(tmfPolygonObjects[i][9]);
// this is where I would set the position of the info window IF I could detect the event
tmfPolygonInfoWindow.setPosition(event.latLng());
tmfPolygonInfoWindow.open(map, tmfPolygon);
}
}
})(tmfPolygon, i));
}
🤔 А знаете ли вы, что...
JavaScript позволяет создавать мобильные приложения для iOS и Android с использованием фреймворков, таких как React Native и NativeScript.
Мне удалось решить это самостоятельно. Просто нужно добавить «событие» в функцию возврата(). Обновленный код показан ниже.
function tmfAddPolygonInfoWindowListener(myPolygon, i, myPolygonInfoWindow) {
tmfPolygon = myPolygon;
tmfPolygonInfoWindow = myPolygonInfoWindow;
tmfShowPolygonInfoWindowListener[i] = google.maps.event.addListener(tmfPolygon, 'click', (function(tmfPolygon, i) {
return function(event) {
tmfPolygonInfoWindow.setContent(tmfPolygonObjects[i][9]);
// this is where I would set the position of the info window IF I could detect the event
tmfPolygonInfoWindow.setPosition(event.latLng);
tmfPolygonInfoWindow.open(map, tmfPolygon);
}
}
})(tmfPolygon, i));
}