Увеличьте размер / высоту карты / холста OpenLayer - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь разрешить Map / Canvas высоту OpenLayers на 100%, но я не могу этого сделать.

Я уже пытался поместить в нескольких местах "height: 100%;»и использовал функцию map.updateSize (), но безуспешно.Я уже пытался использовать "высота: 100vh;"также, но она растягивает карту вместо увеличения холста.

Я отправляю экран печати ниже, иллюстрирующий, что происходит:

enter image description here

Я хотел бы, чтобы высота карты / холста на странице составляла 100%

Этот фрагмент кода показан на изображении:

<div id="map" class="olMap">
    <div class="ol-viewport" data-view="146" style="position: relative; overflow: hidden; width: 100%; height: 100%; touch-action: none;">

        <canvas class="ol-unselectable" width="937" height="480" style="width: 100%; height: 100%; display: block;"></canvas>

        <div class="ol-overlaycontainer"></div>
        <div class="ol-overlaycontainer-stopevent">
        <div class="ol-zoom ol-unselectable ol-control">
        <button class="ol-zoom-in" type="button" title="Zoom in">+</button>
        <button class="ol-zoom-out" type="button" title="Zoom out">−</button>
        </div>
        <div class="ol-rotate ol-unselectable ol-control ol-hidden">                
        <button class="ol-rotate-reset" type="button" title="Reset rotation"><span class="ol-compass" style="transform: rotate(0rad);">⇧</span></button>
        </div>
        <div class="ol-attribution ol-unselectable ol-control ol-collapsed" style="display: none;"><ul></ul><button type="button" title="Attributions"><span>i</span></button>
</div>
</div>
</div>
</div>

Код, где я создаю карту (Исследуйте.vue):

export default {
  ...
  methods: {
    initMap: function () {
      // eslint-disable-next-line
      this.map = new Map({
        target: 'map',
        layers: [
          layerGroupBaseMap
        ],
        view: new View({
          projection: 'EPSG:4326',
          center: [0, 0],
          zoom: 5
        })
      })
    }
  },
  mounted: function () {
    this.initMap()
  },
  ...
}

Исходный код: https://github.com/rmmariano/executive_frontend/tree/dev-rodrigo

У кого-нибудь есть идеи?

PS: я уже задавал этот вопрос в gis.stackexchange.com [1], но на сайте OpenLayers говорится, чтобы спросить здесь в stackoverflow, поэтому я добавляю этот вопрос здесь.

[1] https://gis.stackexchange.com/questions/314059/increase-the-size-height-of-the-openlayer-map-canvas

1 Ответ

0 голосов
/ 01 марта 2019

Убедитесь, что вы включили

<style>
    html, body, .olmap {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
    }
</style>

Проверка с помощью devtools в Chrome бессмысленна, поскольку devtools уменьшает доступный размер страницы для приложения, поэтому карта будет уменьшена.Но вы можете проверить с помощью Edge:

enter image description here

1680 x 977, как и ожидалось на дисплее 1680 x 1050 с учетом верхних полос

...