首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenLayers 5到6:层不渲染

OpenLayers 5到6:层不渲染
EN

Stack Overflow用户
提问于 2019-10-29 06:43:45
回答 1查看 645关注 0票数 1

我们正在尝试将我们的OL5映射迁移为OL6映射。当我们使用OL6时,地图根本不会渲染,在DevTools中,如果我们为地图div设置一个高度,缩放工具和徽标会显示得很好,但没有图层。我们用快速入门地图替换了地图,它在6中不起作用,5完全没问题。检查我们的map对象没有发现任何问题,并且和预期的一样。

其他人有任何问题或解决了这个问题,或者可以帮助吗?谢谢!

HTML声明:

代码语言:javascript
复制
<div id="ephem-map" class="map-medium"></div>

Controller.js:

代码语言:javascript
复制
   vm.map = MapFactory.getMapInstance({
            id: 'ephem-map',
            zoomLevel: 2
        });

MapFactory:

代码语言:javascript
复制
(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
                    })
                  });
                }
        }
    }
})();
EN

回答 1

Stack Overflow用户

发布于 2019-10-31 06:58:22

解决这个问题的方法是在我的地图容器上设置一个高度。似乎它不再使用css中设置的最小/最大高度进行渲染。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58599308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档