固定位置不会平移到地图中心

时间:2018-10-25 08:52:10

标签: css leaflet

我已经创建了一个地图,并且希望该地图在任何屏幕尺寸下都可以全屏显示。将位置设置为固定后,即使将地图配置为更大的屏幕,地图也会全屏显示在我的屏幕上,但是地图的中心已移动。我试图将位置固定为!important,但是仍然遇到相同的问题。这是我的代码:

index.html

{% extends 'workorders/base.html' %}
{% block jumbotron2 %}
<div class="jumbotron">
<h1>Navbar example</h1>
<p class="lead">This example is a quick exercise to illustrate how the top-aligned navbar works. As you scroll, this navbar remains in its original position and moves with the rest of the page.</p>
<a class="btn btn-lg btn-primary" href="../../components/navbar/" role="button">View navbar docs &raquo;</a>
</div>
{% endblock %}

{% block content %}
<!DOCTYPE html>
<html>
{% load static %}
{% load leaflet_tags %}
<head>
  {% leaflet_js %}
  {% leaflet_css %}
  <title>Map</title>
    <style type="text/css">
      #map {
          position: fixed !important;
          width: 1500px;
          height: 1500px;
          margin: 0% 0 0 0%;
          }

      html, body, #map-container {
          height: 100%;
          width: 100%;
          }
    </style>
  <link rel="stylesheet" type="text/css" href="{% static 'dist/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.min.css' %}">
  <script type="text/javascript" src="{% static 'js/jquery-3.3.1.min.js' %}"></script>
  <script type="text/javascript" src="{% static 'js/L.TileLayer.BetterWMS.js' %}" > </script>
  <script type="text/javascript" src="{% static 'dist/leaflet.ajax.js' %}" > </script>
  <script type="text/javascript" src="{% static 'dist/leaflet-groupedlayercontrol/leaflet.groupedlayercontrol.min.js' %}" > </script>
</head>
<body>

<div id="map"></div>
<script type="text/javascript">
      var center_x = 42.21526;
      var center_y = 20.74148;
      var map_zoom = 15;
      var l_w_lines_on = 0;
      var l_ww_manholes =0;
      var l_ww_lines_on  =0;
      var l_ww_disch_on =0;    
      var l_w_res_on  =0;
      var l_w_pump_on  =0;
      var l_w_prod_wm_on  =0;
      var l_w_nodes =0;
      var l_w_hydr  =0;
      var l_w_conn  =0;
      var l_w_conn_pipes  =0;
      var l_ww_cath  =0;
      var l_rek =0;
      var l_ortho2012 =0;
      var l_parc =0;
      var l_ndert =0;
      var l_arcgis =0;
      var l_googleSat =0;

// URL parameters  ?c_x=42.21526&c_y=20.74148&m_zoom=18&w_lines_on=1&ww_manholes=0&ww_lines_on=0&ww_disch_on=0&w_res_on=0&w_pump_on=0&w_prod_wm_on=0&w_nodes=0&w_hydr=0&w_conn=0&w_conn_pipes=0&ww_cath=0&l_rek_on=0&l_ortho2012_on=0&l_ndert_on=0&l_arcgis_on=0&l_googleSat_on=0
      var l_url = location.search;
      var l_urlPairs = l_url.split("?");
      var l_ValStr = l_urlPairs [1];
      if (l_urlPairs.length > 1) {
        var l_Pairs = l_ValStr.split("&");
        var l_pair, l_name, l_val; 
        if (l_Pairs.length > 0) {
         for (var i = 0; i < l_Pairs.length; i++) {
           l_pair = l_Pairs[i].split("="); 
            l_name = l_pair [0]; 
           l_val = l_pair [1]; 
            if (l_name == 'c_x') {
             center_x = l_val;
            } else if (l_name == 'c_y') {
            center_y = l_val;
            } else if (l_name == 'm_zoom') {
             map_zoom = l_val;
            } else if (l_name == 'w_lines_on') {
              l_w_lines_on = l_val;
            } else if (l_name == 'ww_manholes') {
              l_ww_manholes = l_val;
            } else if (l_name == 'ww_lines_on') {
              l_ww_lines_on = l_val;
            } else if (l_name == 'ww_disch_on') {
              l_ww_disch_on = l_val;
            } else if (l_name == 'w_res_on') {
              l_w_res_on = l_val;
            } else if (l_name == 'w_pump_on') {
              l_w_pump_on = l_val;
            } else if (l_name == 'w_prod_wm_on') {
              l_w_prod_wm_on = l_val;
            } else if (l_name == 'w_nodes') {
              l_w_nodes = l_val;
            } else if (l_name == 'w_hydr') {
              l_w_hydr = l_val;
            } else if (l_name == 'w_conn') {
              l_w_conn = l_val;
            } else if (l_name == 'w_conn_pipes') {
              l_w_conn_pipes = l_val;
            } else if (l_name == 'ww_cath') {
              l_ww_cath = l_val;
            } else if (l_name == 'l_rek_on') {
              l_rek = l_val;
            } else if (l_ortho2012 == 'l_ortho2012_on') {
              l_ortho2012 = l_val;
            } else if (l_parc == 'l_parc_on') {
              l_parc = l_val;
            } else if (l_ndert == 'l_ndert_on') {
              l_ndert = l_val;
            } else if (l_arcgis == 'l_arcgis_on') {
              l_arcgis = l_val;
            } else if (l_googleSat == 'l_googleSat_on') {
              l_googleSat = l_val;
            }
          }
        }
      }
      var map = L.map('map', {
        center: [center_x , center_y],
        zoom: map_zoom
      });

      L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', {
          maxNativeZoom:25,
          maxZoom: 25,
          attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
      }).addTo(map);

      // map.on('click', function(e) {
      //     alert("Lat, Lon : " + e.latlng.lat + ", " + e.latlng.lng)
      // });

      var serviceUrl = 'http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}';
      var credits = 'Tiles &copy; Esri &mdash; Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012 etc. etc. etc.';
      var arcgis = L.tileLayer(serviceUrl, { 
        attribution: credits,
        maxZoom: 25,
        maxNativeZoom: 18
      });

      var googleSat = L.tileLayer('http://{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}',{
          maxZoom: 25,
          subdomains:['mt0','mt1','mt2','mt3']
      });

      var datasets = L.tileLayer.betterWms('http://172.17.1.123:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_ww_manholes',
        format: 'image/png',
        transparent: true,
        maxZoom: 25
      });

      var lines = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_ww_lines',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_lines = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_lines',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var ww_discharge = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_ww_discharge',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_reservoirs = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_reservoirs',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_pumpstations = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_pumpstations',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_product_wm = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_product_wm',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_nodes = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_nodes',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_hydrants = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_hydrants',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_connect_wm = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_connect_wm',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var w_connect_pipes = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_w_connect_pipes',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var ww_catchments = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_ww_catchments',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var rekordet = L.tileLayer.betterWms('http://localhost:8080/geoserver/geodjango/wms', {
        layers: 'geodjango:layer_rekordet',
        transparent: true,
        maxZoom: 25,
        format: 'image/png'
      });

      var parcelat = L.tileLayer.betterWms('http://geoportal.rks-gov.net:/wms', {
        layers: 'KCM_DEV_WS:ParcelGeomView',
        format: 'image/png',
        transparent: true,
        visibility: false,
        srs: 'EPSG:7392',
        maxZoom: 25,
        singleTile: false
      });

      var ndertesat = L.tileLayer.betterWms('http://geoportal.rks-gov.net:/wms', {
        layers: 'KCM_DEV_WS:BuildingGeomView',
        format: 'image/png',
        transparent: true,
        visibility: false,
        srs: 'EPSG:7392',
        maxZoom: 25,
        singleTile: false
      });

      var ortho2012 = L.tileLayer.betterWms('http://geoportal.rks-gov.net:/wms', {
        layers: 'Orthophoto_2012',
        format: 'image/png',
        transparent: true,
        visibility: true,
        srs: 'EPSG:7392',
        maxZoom: 25,
        singleTile: false
      });



        if (l_ww_manholes == 1)  datasets.addTo(map);
        if (l_ww_lines_on == 1)  lines.addTo(map);
        if (l_w_lines_on == 1)  w_lines.addTo(map);
        if (l_ww_disch_on == 1)  ww_discharge.addTo(map);    
        if (l_w_res_on == 1)  w_reservoirs.addTo(map);
        if (l_w_pump_on == 1)  w_pumpstations.addTo(map);
        if (l_w_prod_wm_on == 1)  w_product_wm.addTo(map);
        if (l_w_nodes == 1)  w_nodes.addTo(map);
        if (l_w_hydr == 1)  w_hydrants.addTo(map);
        if (l_w_conn == 1)  w_connect_wm.addTo(map);
        if (l_w_conn_pipes == 1)  w_connect_pipes.addTo(map);
        if (l_ww_cath == 1)   ww_catchments.addTo(map);
        if (l_rek == 1)   rekordet.addTo(map);
        if (l_ortho2012 == 1)   ortho2012.addTo(map);
        if (l_parc ==1)   parcelat.addTo(map);
        if (l_ndert ==1)   ndertesat.addTo(map);
        if (l_arcgis ==1)   arcgis.addTo(map);
        if (l_googleSat ==1)   googleSat.addTo(map);



       var basemaps = {
          OSM: L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
            maxNativeZoom:25,
            maxZoom:19
          })
      };

        var groupedOverlays = {
          "Layers": {
            "satellite":googleSat,
            "arcgis map": arcgis,
            "Orthophoto_2012": ortho2012,
            "Ndertesat": ndertesat,
            "Parcelat": parcelat,
            "ww_manholes": datasets,
            "ww_lines": lines,
            "w_lines": w_lines,
            "ww_discharge": ww_discharge,
            "w_reservoirs": w_reservoirs,
            "w_pumpstations": w_pumpstations,
            "w_product_wm": w_product_wm,
            "w_nodes": w_nodes,
            "w_hydrants": w_hydrants,
            "w_connect_wm": w_connect_wm,
            "w_connect_pipes": w_connect_pipes,
            "ww_catchments": ww_catchments,
            "rekordet": rekordet

          }

        };

        L.control.groupedLayers(basemaps, groupedOverlays).addTo(map);   

</script>


</body>
</html>
{% endblock %}

1 个答案:

答案 0 :(得分:2)

尝试:

#map {
    height: 100vh;
    width: 100vw;
}