Обновление слоя 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.