openlayers - 更新到 OpenLayers 3

标签 openlayers openlayers-3

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




我希望将我的应用程序从 OpenLayers 2 更新到 OpenLayers 3。

有没有人知道有帮助的迁移指南(或类似的东西)?

最佳答案

FWIW - 我们想在迁移我们头脑简单的页面时做出贡献 http://www.nufosmatic.com从 ol2 到 ol3。问题看起来很严重,但很多原因在于 ol3 看起来比 ol2 好得多,示例看起来也有很大改进,文档也好多了,但它们不同,如​​果您已经终于习惯了 ol2 文档。

命名空间已更改,并且某些 API 调用顺序必须因某些语义差异而更改。这里是一个头脑简单的一阶 map 迁移。这个简单的练习花了大约一个小时,主要是由于上面提到的新文档混淆:

/*                                                                                         
  Very simple OpenLayers2 map                                                              
 */
var map, layer, center;

function init() {
    map = new OpenLayers.Map('map');
    layer = new OpenLayers.Layer.OSM("Simple OSM Map");
    map.addLayer(layer); // this must come before the following                            
    center = new OpenLayers.LonLat(-71.147, 42.472)
        .transform(
                   new OpenLayers.Projection("EPSG:4326"),
                   map.getProjectionObject()
                   );
    map.setCenter(center, 5);
}
/*                                                                                         
  Very simple OpenLayers3 map                                                              
 */                                                                                        
var map, layer, center;                                                                    

function init(){                                                                           
    map = new ol.Map({                                                                     
            target:'map',                                                                  
            renderer:'canvas',                                                             
            view: new ol.View({                                                            
                    projection: 'EPSG:900913',                                             
                })                                                                         
        });                                                                                
    layer = new ol.layer.Tile({                                                            
            source: new ol.source.OSM()                                                    
        });                                                                                
    map.addLayer(layer); // this can actually come up last                                 
    center = new ol.proj.transform([-71.147, 42.472],                                      
                                   'EPSG:4326', // essentially LonLat                      
                                   map.getView().getProjection());                         
    map.getView().setCenter(center);                                                       
    map.getView().setZoom(5);                                                              
}

顶层 html 在标签中进行了一些更改,并进行了一些包装更改(上面的内容在 js/main.js 文件中):
> diff -btw ../*[23]/index.html
7c7
<         <script src='OpenLayers-2.13.1/OpenLayers.js'></script>
---
> <script src='v3.10.1/build/ol.js'></script>
11c11
<         <link rel='stylesheet' href='OpenLayers-2.13.1/theme/default/style.css'>
---
> <link rel='stylesheet' href='v3.10.1/css/ol.css'>

关于openlayers - 更新到 OpenLayers 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25751069/

相关文章:

javascript - 打开图层 LineString 不工作

javascript - 在 Openlayers 中单击 map 外部时如何激活功能 + 弹出窗口?

javascript - OpenLayers 3 Vector 缩放错误位置

javascript - 如何使用 JSON 坐标向 OPENLAYERS map 添加标记?

javascript - 在 openlayer-3 上模拟鼠标点击?

javascript - 在 OpenLayer 3 + Javascript 中无法导出 map

javascript - Chrome 的版本会影响 JavaScript 库的行为吗?

google-maps - Openlayers 商业应用 : licensing issues?

javascript - 在 OpenLayers 上重绘之前清除 WMS 图层

javascript - 使用 jquery/javascript 通过 Rest 和 json 编辑 ArcGIS 服务中的数据