Обновление слоя Google Maps Engine после вставки

У меня есть Google Maps, где я добавил, и MapsEngineLayer (я также попробовал с DynamicMapsEngineLayer, вы можете проверить код для обоих здесь: https://developers.google.com/maps/documentation/javascript/mapsenginelayers). На веб-сайте - HTML и Javascript - у меня есть кнопка редактирования, где я изменяю через API Google Maps Engine некоторые атрибуты некоторых функций или добавляю новые функции (геометрии) в источник данных этого слоя. Эти вставки выполняются с помощью ajax-вызова php (аналогично https://developers.google.com/maps-engine/documentation/feature-create).

Вся аутентификация выполняется как учетная запись службы, поэтому токен для слоя и API равен некоторым для 3600 секунд.

После Вставки / Обновления на карте ничего не появляется, но, если я открою новое личное окно, все изменения будут там.

Какой лучший способ принудительно обновить обновление MapsEngineLayer или только фрагменты, затронутые этой вставкой?

Я уже пробовал, после вставки:

mapsEngineLayer.unbindAll();
mapsEngineLayer.setMap(null);
mapsEngineLayer = null;

Я могу использовать GeoJSON, чтобы перечитать все функции, но у источников данных есть много особенностей.

1 ответ

Попробуйте сделать это, чтобы перезагрузить слой без разрушения всей карты:

layer.setMap(null);
delete layer;
layer = new google.maps.visualization.MapsEngineLayer({ layerId: ... });
layer.setMap(map);

Это также должно работать для DynamicMapsEngineLayer.

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