openlayers 3尝试加载geojson对象

时间:2015-03-05 03:13:54

标签: openlayers-3 geojson projection

对于使用openlayers 3来说,我有点新鲜。

我试图在openlayers 3中加载一个geojson对象,但是它只显示了中心点[0,0],甚至在我的geojson对象中也没有。我错了。

代码如下:

//CREATE A BASE LAYER
        var raster = new ol.layer.Tile({
          source: new ol.source.OSM()
        }); 

        // create a source from the feature
        var source = new ol.source.GeoJSON(

            ({
                    object:
                        {
                            'type': 'FeatureCollection',
                            'crs': {
                                'type': 'name',
                                'properties': {'name': 'EPSG:3857'}
                            },
                            'features': [
                                {
                                    'type': 'Feature',
                                    //'properties': {'id': 63},
                                    'geometry': {
                                        'type': 'Point',
                                        'coordinates': [12, 12]
                                    }
                                },
                                {
                                    'type': 'Feature',
                                    'properties': {'id': 62},
                                    'geometry': {
                                        'type': 'Point',
                                        'coordinates': [35.0, 1.0]}
                                },
                                {
                                    'type': 'Feature',
                                    'properties': {'id': 61},
                                    'geometry': {
                                        'type': 'Point',
                                        'coordinates': [34.0, 0.0]}
                                },
                                {
                                    'type': 'Feature',
                                    'properties': {
                                        'id': 56
                                    },
                                    'geometry': {
                                        'type': 'Point',
                                        'coordinates': [33.0, 33.0]
                                    }
                                }
                            ]
                        }
            })
        );


       // CREATE THE LAYER WITH THE DATA
        var vectorLayer = new ol.layer.Vector({
            source: source
        });

       // create an openlayers map object
        var map = new ol.Map({
            target: attrs.id,
            layers: [raster,vectorLayer],
            view: new ol.View({
                //projection:'EPSG:4326',
                center:[0,0],
                zoom:2
            })
        });
    }

1 个答案:

答案 0 :(得分:2)

我想通了,我不得不重新投射我的geojson对象,

默认情况下,

openlayers3使用epsg:3857,我的基本地图也是openstreetmap,即投影坐标系,因此我必须将我的geojson转换为投影系统,因为它是使用经度和纬度(即地理坐标系)进入的。 (geojson总是espg:4326)

var source = new ol.source.GeoJSON({
                    object:{
                        'type': 'FeatureCollection',
                        'crs': {
                            'type': 'name',
                            'properties': {'name': 'EPSG:4326'}
                        },
                        'features': [
                            {
                                'type': 'Feature',
                                //'properties': {'id': 63},
                                'geometry': {
                                    'type': 'Point',
                                    'coordinates': [12, 12]
                                }
                            },
                            {
                                'type': 'Feature',
                                'properties': {'id': 62},
                                'geometry': {
                                    'type': 'Point',
                                    'coordinates': [35.0, 1.0]}
                            },
                            {
                                'type': 'Feature',
                                'properties': {'id': 61},
                                'geometry': {
                                    'type': 'Point',
                                    'coordinates': [34.0, 0.0]}
                            },
                            {
                                'type': 'Feature',
                                'properties': {
                                    'id': 56
                                },
                                'geometry': {
                                    'type': 'Point',
                                    'coordinates': [33.0, 33.0]
                                }
                            }
                        ]
                    },
                    projection: 'EPSG:3857'
            }
        );