{% extends "gis/openlayers.html" %}
{% load l10n %}
{% block base_layer %}
var base_layer;{% endblock %}
{% block options %}{{ block.super }}
options['default_lon'] = {{ default_lon|unlocalize }};
options['default_lat'] = {{ default_lat|unlocalize }};
options['default_zoom'] = {{ default_zoom|unlocalize }};
var map_layers_edit = [
new ol.layer.Group({
title: base_maps_msg,
visible: true,
layers: get_layers()
})
];
options["layers"] = map_layers_edit;
delete options.base_layer;
var map_controls = ol.control.defaults().extend([
new ol.control.FullScreen(),
new ol.control.ScaleLine()
]);
if (location.protocol == 'https:'){
map_controls.push(
new TrackPositionControl({map_id: options['map_id']})
);
}
options["controls"] = map_controls;
{% endblock %}
{% block post_module %}
var layer_switcher = new ol.control.LayerSwitcher({
tipLabel: 'Légende',
groupSelectStyle: 'children'
});
{{ module }}.map.addControl(layer_switcher);
{% comment %}$(".ol-viewport").parent().width($(".form").width());{% endcomment %}
let ol_viewport = document.querySelector(".ol-viewport");
if (ol_viewport.parent) ol_viewport.parent().width(document.querySelector(".form").width());
{% comment %}$(document).ready(function() { {% endcomment %}
document.addEventListener("DOMContentLoaded", function() {
{{ module }}.map.updateSize();
let features = {{ module }}.featureOverlay.getSource().getFeatures();
if (features.length){
let layer_extent = features[0].getGeometry().getExtent().slice(0);
features.forEach(function(feature){ ol.extent.extend(layer_extent, feature.getGeometry().getExtent())});
{{ module }}.map.getView().fit(layer_extent, {{ module }}.map.getSize());
}
let current_zoom = {{ module }}.map.getView().getZoom();
if ({{ module }}.map.getView().getZoom() > 18) {{ module }}.map.getView().setZoom(18);
current_module = {{ module }} ;
});
{% endblock %}