Merge pull request #1566 from twpayne/geoserver-geojson-crs
Parse out-of-spec CRSs generated by GeoServer
This commit is contained in:
+16
-1
@@ -34,12 +34,27 @@ var GeoJSONCRS = function() {};
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {!GeoJSONCRSName|!GeoJSONLink}
|
* @type {!GeoJSONCRSCode|!GeoJSONCRSName|!GeoJSONLink}
|
||||||
*/
|
*/
|
||||||
GeoJSONCRS.prototype.properties;
|
GeoJSONCRS.prototype.properties;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `GeoJSONCRSCode` is not part of the GeoJSON specification, but is generated
|
||||||
|
* by GeoServer.
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
var GeoJSONCRSCode = function() {};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {string}
|
||||||
|
*/
|
||||||
|
GeoJSONCRSName.prototype.code;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -370,6 +370,10 @@ ol.format.GeoJSON.prototype.readProjection = function(object) {
|
|||||||
if (goog.isDefAndNotNull(crs)) {
|
if (goog.isDefAndNotNull(crs)) {
|
||||||
if (crs.type == 'name') {
|
if (crs.type == 'name') {
|
||||||
return ol.proj.get(crs.properties.name);
|
return ol.proj.get(crs.properties.name);
|
||||||
|
} else if (crs.type == 'EPSG') {
|
||||||
|
// 'EPSG' is not part of the GeoJSON specification, but is generated by
|
||||||
|
// GeoServer.
|
||||||
|
return ol.proj.get('EPSG:' + crs.properties.code);
|
||||||
} else {
|
} else {
|
||||||
goog.asserts.fail();
|
goog.asserts.fail();
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -391,6 +391,18 @@ describe('ol.format.GeoJSON', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('can read out-of-specification CRS generated by GeoServer', function() {
|
||||||
|
var json = {
|
||||||
|
crs: {
|
||||||
|
type: 'EPSG',
|
||||||
|
properties: {
|
||||||
|
code: '4326'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
expect(format.readProjection(json)).to.be(ol.proj.get('EPSG:4326'));
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#writeFeatures', function() {
|
describe('#writeFeatures', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user