OpenLayers с 5 по 6: слои не отображаются - PullRequest
0 голосов
/ 29 октября 2019

Мы пытаемся перенести нашу карту OL5 в карту OL6. Когда мы используем OL6, карта вообще не рендерится, и в DevTools, если мы установим высоту карты div, инструменты масштабирования и логотип будут отображаться нормально, но слоев нет. Мы заменили карту на карту быстрого старта, и она не работает в 6, 5 отлично. Осмотр объекта нашей карты не показывает проблем и соответствует ожиданиям.

У кого-то еще есть проблемы, или они решили эту проблему, или могут помочь? Спасибо!

HTML-объявление:

<div id="ephem-map" class="map-medium"></div>

Controller.js:

   vm.map = MapFactory.getMapInstance({
            id: 'ephem-map',
            zoomLevel: 2
        });

MapFactory:

(function () {
    'use strict';
    /* global ol, angular */

    angular.module('common').factory('MapFactory', MapFactory);

    MapFactory.$inject = [];

    function MapFactory() {

        var factory = {
            getMapInstance: getMapInstance
        };
        return factory;

        function getMapInstance(options) {
            return new _MapConstructor(options);
        }


        function _MapConstructor(options) {
            /**
             * Guarantee "new" instance
             */
            if (!(this instanceof _MapConstructor)) {
                return new _MapConstructor(options);
            }

            options = options || {};
            var _id = options.id || 'map';
            var _zoomLevel = options.zoomLevel || 2;
            var _resultsOptions = options.results || {};
            var _wrapX = options.wrapX || false;
            var _infoTag = options.infoTag || 'info';



            // The actual ol.Map object that manipulates the DOM
            var _map = undefined;

            // Run on construction
            _initialize();

            // The working MapInstance object
            var mapinstance = {};

            return mapinstance;

            function setTarget(target) {
                _map.setTarget(target);
            }

            /**
             * Private Methods to _MapInstance
             */
            function _initialize() {
                _map =  new ol.Map({
                    target: _id,
                    layers: [
                        new ol.layer.Tile({
                            source: new ol.source.OSM()
                        })
                    ],
                    view: new ol.View({
                        center: ol.proj.fromLonLat([37.41, 8.82]),
                        zoom: 4
                    })
                  });
                }
        }
    }
})();

1 Ответ

0 голосов
/ 31 октября 2019

Решил это, установив заданную высоту на моей карте контейнеров. Кажется, он больше не рендерится, только с минимальными / максимальными высотами, установленными в CSS.

...