Merge pull request #1335 from tschaub/geometry-type

Change geometry type enum and mark as stable.
This commit is contained in:
Tim Schaub
2013-12-10 08:50:54 -08:00
30 changed files with 176 additions and 176 deletions

View File

@@ -1,12 +1,12 @@
@exportSymbol ol.geom.GeometryType
@exportProperty ol.geom.GeometryType.POINT
@exportProperty ol.geom.GeometryType.LINEARRING
@exportProperty ol.geom.GeometryType.LINESTRING
@exportProperty ol.geom.GeometryType.LINEAR_RING
@exportProperty ol.geom.GeometryType.LINE_STRING
@exportProperty ol.geom.GeometryType.POLYGON
@exportProperty ol.geom.GeometryType.MULTIPOINT
@exportProperty ol.geom.GeometryType.MULTILINESTRING
@exportProperty ol.geom.GeometryType.MULTIPOLYGON
@exportProperty ol.geom.GeometryType.GEOMETRYCOLLECTION
@exportProperty ol.geom.GeometryType.MULTI_POINT
@exportProperty ol.geom.GeometryType.MULTI_LINE_STRING
@exportProperty ol.geom.GeometryType.MULTI_POLYGON
@exportProperty ol.geom.GeometryType.GEOMETRY_COLLECTION
@exportSymbol ol.geom.Geometry

View File

@@ -9,6 +9,24 @@ goog.require('ol.Extent');
goog.require('ol.TransformFunction');
/**
* Geometry types.
*
* @enum {string}
* @todo stability stable
*/
ol.geom.GeometryType = {
POINT: 'Point',
LINE_STRING: 'LineString',
LINEAR_RING: 'LinearRing',
POLYGON: 'Polygon',
MULTI_POINT: 'MultiPoint',
MULTI_LINE_STRING: 'MultiLineString',
MULTI_POLYGON: 'MultiPolygon',
GEOMETRY_COLLECTION: 'GeometryCollection'
};
/**
* @constructor
@@ -72,21 +90,3 @@ ol.geom.GeometryEvent = function(type, target, oldExtent) {
this.oldExtent = oldExtent;
};
goog.inherits(ol.geom.GeometryEvent, goog.events.Event);
/**
* Geometry types.
*
* @enum {string}
* @todo stability experimental
*/
ol.geom.GeometryType = {
POINT: 'point',
LINESTRING: 'linestring',
LINEARRING: 'linearring',
POLYGON: 'polygon',
MULTIPOINT: 'multipoint',
MULTILINESTRING: 'multilinestring',
MULTIPOLYGON: 'multipolygon',
GEOMETRYCOLLECTION: 'geometrycollection'
};

View File

@@ -53,5 +53,5 @@ ol.geom.GeometryCollection.prototype.clone = function() {
* @inheritDoc
*/
ol.geom.GeometryCollection.prototype.getType = function() {
return ol.geom.GeometryType.GEOMETRYCOLLECTION;
return ol.geom.GeometryType.GEOMETRY_COLLECTION;
};

View File

@@ -66,7 +66,7 @@ ol.geom.LinearRing.isClockwise = function(coordinates) {
* @inheritDoc
*/
ol.geom.LinearRing.prototype.getType = function() {
return ol.geom.GeometryType.LINEARRING;
return ol.geom.GeometryType.LINEAR_RING;
};

View File

@@ -90,7 +90,7 @@ ol.geom.LineString.prototype.getBounds = function() {
* @inheritDoc
*/
ol.geom.LineString.prototype.getType = function() {
return ol.geom.GeometryType.LINESTRING;
return ol.geom.GeometryType.LINE_STRING;
};

View File

@@ -42,7 +42,7 @@ goog.inherits(ol.geom.MultiLineString, ol.geom.AbstractCollection);
* @inheritDoc
*/
ol.geom.MultiLineString.prototype.getType = function() {
return ol.geom.GeometryType.MULTILINESTRING;
return ol.geom.GeometryType.MULTI_LINE_STRING;
};

View File

@@ -42,7 +42,7 @@ goog.inherits(ol.geom.MultiPoint, ol.geom.AbstractCollection);
* @inheritDoc
*/
ol.geom.MultiPoint.prototype.getType = function() {
return ol.geom.GeometryType.MULTIPOINT;
return ol.geom.GeometryType.MULTI_POINT;
};

View File

@@ -43,7 +43,7 @@ goog.inherits(ol.geom.MultiPolygon, ol.geom.AbstractCollection);
* @inheritDoc
*/
ol.geom.MultiPolygon.prototype.getType = function() {
return ol.geom.GeometryType.MULTIPOLYGON;
return ol.geom.GeometryType.MULTI_POLYGON;
};

View File

@@ -337,11 +337,11 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) {
sketchFeature.setGeometry(new ol.geom.Polygon(coordinates));
}
// cast multi-part geometries
if (this.type_ === ol.geom.GeometryType.MULTIPOINT) {
if (this.type_ === ol.geom.GeometryType.MULTI_POINT) {
sketchFeature.setGeometry(new ol.geom.MultiPoint([coordinates]));
} else if (this.type_ === ol.geom.GeometryType.MULTILINESTRING) {
} else if (this.type_ === ol.geom.GeometryType.MULTI_LINE_STRING) {
sketchFeature.setGeometry(new ol.geom.MultiLineString([coordinates]));
} else if (this.type_ === ol.geom.GeometryType.MULTIPOLYGON) {
} else if (this.type_ === ol.geom.GeometryType.MULTI_POLYGON) {
sketchFeature.setGeometry(new ol.geom.MultiPolygon([coordinates]));
}
this.layer_.getVectorSource().addFeatures([sketchFeature]);
@@ -379,13 +379,13 @@ ol.interaction.Draw.prototype.abortDrawing_ = function() {
ol.interaction.Draw.getMode_ = function(type) {
var mode;
if (type === ol.geom.GeometryType.POINT ||
type === ol.geom.GeometryType.MULTIPOINT) {
type === ol.geom.GeometryType.MULTI_POINT) {
mode = ol.interaction.DrawMode.POINT;
} else if (type === ol.geom.GeometryType.LINESTRING ||
type === ol.geom.GeometryType.MULTILINESTRING) {
} else if (type === ol.geom.GeometryType.LINE_STRING ||
type === ol.geom.GeometryType.MULTI_LINE_STRING) {
mode = ol.interaction.DrawMode.LINESTRING;
} else if (type === ol.geom.GeometryType.POLYGON ||
type === ol.geom.GeometryType.MULTIPOLYGON) {
type === ol.geom.GeometryType.MULTI_POLYGON) {
mode = ol.interaction.DrawMode.POLYGON;
}
goog.asserts.assert(goog.isDef(mode));

View File

@@ -410,10 +410,10 @@ ol.parser.GeoJSON.prototype.write = function(obj) {
*/
ol.parser.GeoJSON.GeometryType = {
'Point': ol.geom.GeometryType.POINT,
'LineString': ol.geom.GeometryType.LINESTRING,
'LineString': ol.geom.GeometryType.LINE_STRING,
'Polygon': ol.geom.GeometryType.POLYGON,
'MultiPoint': ol.geom.GeometryType.MULTIPOINT,
'MultiLineString': ol.geom.GeometryType.MULTILINESTRING,
'MultiPolygon': ol.geom.GeometryType.MULTIPOLYGON,
'GeometryCollection': ol.geom.GeometryType.GEOMETRYCOLLECTION
'MultiPoint': ol.geom.GeometryType.MULTI_POINT,
'MultiLineString': ol.geom.GeometryType.MULTI_LINE_STRING,
'MultiPolygon': ol.geom.GeometryType.MULTI_POLYGON,
'GeometryCollection': ol.geom.GeometryType.GEOMETRY_COLLECTION
};

View File

@@ -65,7 +65,7 @@ ol.parser.GPX = function(opt_options) {
},
'rte': function(node, obj) {
if (this.extractRoutes || obj.force) {
var type = ol.geom.GeometryType.LINESTRING;
var type = ol.geom.GeometryType.LINE_STRING;
var container = {
properties: {},
geometry: {

View File

@@ -185,19 +185,19 @@ ol.parser.KML = function(opt_options) {
switch (type) {
case ol.geom.GeometryType.POINT:
obj.geometry = {
type: ol.geom.GeometryType.MULTIPOINT,
type: ol.geom.GeometryType.MULTI_POINT,
parts: parts
};
break;
case ol.geom.GeometryType.LINESTRING:
case ol.geom.GeometryType.LINE_STRING:
obj.geometry = {
type: ol.geom.GeometryType.MULTILINESTRING,
type: ol.geom.GeometryType.MULTI_LINE_STRING,
parts: parts
};
break;
case ol.geom.GeometryType.POLYGON:
obj.geometry = {
type: ol.geom.GeometryType.MULTIPOLYGON,
type: ol.geom.GeometryType.MULTI_POLYGON,
parts: parts
};
break;
@@ -207,7 +207,7 @@ ol.parser.KML = function(opt_options) {
} else {
// mixed collection
obj.geometry = {
type: ol.geom.GeometryType.GEOMETRYCOLLECTION,
type: ol.geom.GeometryType.GEOMETRY_COLLECTION,
parts: parts
};
}
@@ -250,7 +250,7 @@ ol.parser.KML = function(opt_options) {
var coordinates = [];
this.readChildNodes(node, coordinates);
var linestring = {
type: ol.geom.GeometryType.LINESTRING,
type: ol.geom.GeometryType.LINE_STRING,
coordinates: coordinates[0]
};
// in the case of a multi geometry this is parts
@@ -730,7 +730,7 @@ ol.parser.KML = function(opt_options) {
this.setAttributeNS(node, null, 'id', obj.id);
}
var literal = obj.symbolizer.createLiteral(
ol.geom.GeometryType.LINESTRING);
ol.geom.GeometryType.LINE_STRING);
this.writeNode('color', {
color: literal.color.substring(1),
opacity: literal.opacity
@@ -1111,34 +1111,34 @@ ol.parser.KML.prototype.createGeometry_ = function(container) {
case ol.geom.GeometryType.POINT:
geometry = new ol.geom.Point(container.geometry.coordinates);
break;
case ol.geom.GeometryType.LINESTRING:
case ol.geom.GeometryType.LINE_STRING:
geometry = new ol.geom.LineString(container.geometry.coordinates);
break;
case ol.geom.GeometryType.POLYGON:
geometry = new ol.geom.Polygon(container.geometry.coordinates);
break;
case ol.geom.GeometryType.MULTIPOINT:
case ol.geom.GeometryType.MULTI_POINT:
coordinates = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
coordinates.push(container.geometry.parts[i].coordinates);
}
geometry = new ol.geom.MultiPoint(coordinates);
break;
case ol.geom.GeometryType.MULTILINESTRING:
case ol.geom.GeometryType.MULTI_LINE_STRING:
coordinates = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
coordinates.push(container.geometry.parts[i].coordinates);
}
geometry = new ol.geom.MultiLineString(coordinates);
break;
case ol.geom.GeometryType.MULTIPOLYGON:
case ol.geom.GeometryType.MULTI_POLYGON:
coordinates = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
coordinates.push(container.geometry.parts[i].coordinates);
}
geometry = new ol.geom.MultiPolygon(coordinates);
break;
case ol.geom.GeometryType.GEOMETRYCOLLECTION:
case ol.geom.GeometryType.GEOMETRY_COLLECTION:
var geometries = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
geometries.push(this.createGeometry_({

View File

@@ -102,7 +102,7 @@ ol.parser.ogc.GML = function(opt_options) {
[node, parts, container]);
this.readChildNodes(node, parts);
container.geometry = {
type: ol.geom.GeometryType.GEOMETRYCOLLECTION,
type: ol.geom.GeometryType.GEOMETRY_COLLECTION,
parts: parts
};
},
@@ -115,7 +115,7 @@ ol.parser.ogc.GML = function(opt_options) {
[node, parts, container]);
this.readChildNodes(node, parts);
container.geometry = {
type: ol.geom.GeometryType.MULTIPOINT,
type: ol.geom.GeometryType.MULTI_POINT,
parts: parts
};
},
@@ -128,7 +128,7 @@ ol.parser.ogc.GML = function(opt_options) {
[node, parts, container]);
this.readChildNodes(node, parts);
container.geometry = {
type: ol.geom.GeometryType.MULTILINESTRING,
type: ol.geom.GeometryType.MULTI_LINE_STRING,
parts: parts
};
},
@@ -141,7 +141,7 @@ ol.parser.ogc.GML = function(opt_options) {
[node, parts, container]);
this.readChildNodes(node, parts);
container.geometry = {
type: ol.geom.GeometryType.MULTIPOLYGON,
type: ol.geom.GeometryType.MULTI_POLYGON,
parts: parts
};
},
@@ -173,7 +173,7 @@ ol.parser.ogc.GML = function(opt_options) {
[node, coordinates, container]);
this.readChildNodes(node, coordinates);
var linestring = {
type: ol.geom.GeometryType.LINESTRING,
type: ol.geom.GeometryType.LINE_STRING,
coordinates: coordinates[0]
};
// in the case of a multi geometry this is parts
@@ -209,7 +209,7 @@ ol.parser.ogc.GML = function(opt_options) {
container.push(coordinates);
} else {
container.geometry = {
type: ol.geom.GeometryType.LINEARRING,
type: ol.geom.GeometryType.LINEAR_RING,
coordinates: coordinates[0]
};
}
@@ -444,20 +444,20 @@ ol.parser.ogc.GML = function(opt_options) {
var type = geometry.getType(), child;
if (type === ol.geom.GeometryType.POINT) {
child = this.writeNode('Point', geometry, null, node);
} else if (type === ol.geom.GeometryType.MULTIPOINT) {
} else if (type === ol.geom.GeometryType.MULTI_POINT) {
child = this.writeNode('MultiPoint', geometry, null, node);
} else if (type === ol.geom.GeometryType.LINEARRING) {
} else if (type === ol.geom.GeometryType.LINEAR_RING) {
child = this.writeNode('LinearRing', geometry.getCoordinates(), null,
node);
} else if (type === ol.geom.GeometryType.LINESTRING) {
} else if (type === ol.geom.GeometryType.LINE_STRING) {
child = this.writeNode('LineString', geometry, null, node);
} else if (type === ol.geom.GeometryType.MULTILINESTRING) {
} else if (type === ol.geom.GeometryType.MULTI_LINE_STRING) {
child = this.writeNode('MultiLineString', geometry, null, node);
} else if (type === ol.geom.GeometryType.POLYGON) {
child = this.writeNode('Polygon', geometry, null, node);
} else if (type === ol.geom.GeometryType.MULTIPOLYGON) {
} else if (type === ol.geom.GeometryType.MULTI_POLYGON) {
child = this.writeNode('MultiPolygon', geometry, null, node);
} else if (type === ol.geom.GeometryType.GEOMETRYCOLLECTION) {
} else if (type === ol.geom.GeometryType.GEOMETRY_COLLECTION) {
child = this.writeNode('GeometryCollection', geometry, null, node);
}
if (goog.isDefAndNotNull(this.srsName)) {
@@ -570,37 +570,37 @@ ol.parser.ogc.GML.prototype.createGeometry = function(container) {
case ol.geom.GeometryType.POINT:
geometry = new ol.geom.Point(container.geometry.coordinates);
break;
case ol.geom.GeometryType.LINEARRING:
case ol.geom.GeometryType.LINEAR_RING:
geometry = new ol.geom.LinearRing(container.geometry.coordinates);
break;
case ol.geom.GeometryType.LINESTRING:
case ol.geom.GeometryType.LINE_STRING:
geometry = new ol.geom.LineString(container.geometry.coordinates);
break;
case ol.geom.GeometryType.POLYGON:
geometry = new ol.geom.Polygon(container.geometry.coordinates);
break;
case ol.geom.GeometryType.MULTIPOINT:
case ol.geom.GeometryType.MULTI_POINT:
coordinates = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
coordinates.push(container.geometry.parts[i].coordinates);
}
geometry = new ol.geom.MultiPoint(coordinates);
break;
case ol.geom.GeometryType.MULTILINESTRING:
case ol.geom.GeometryType.MULTI_LINE_STRING:
coordinates = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
coordinates.push(container.geometry.parts[i].coordinates);
}
geometry = new ol.geom.MultiLineString(coordinates);
break;
case ol.geom.GeometryType.MULTIPOLYGON:
case ol.geom.GeometryType.MULTI_POLYGON:
coordinates = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
coordinates.push(container.geometry.parts[i].coordinates);
}
geometry = new ol.geom.MultiPolygon(coordinates);
break;
case ol.geom.GeometryType.GEOMETRYCOLLECTION:
case ol.geom.GeometryType.GEOMETRY_COLLECTION:
var geometries = [];
for (i = 0, ii = container.geometry.parts.length; i < ii; i++) {
geometries.push(this.createGeometry({

View File

@@ -29,18 +29,18 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
var type = geometry.getType(), child;
if (type === ol.geom.GeometryType.POINT) {
child = this.writeNode('Point', geometry, null, node);
} else if (type === ol.geom.GeometryType.MULTIPOINT) {
} else if (type === ol.geom.GeometryType.MULTI_POINT) {
child = this.writeNode('MultiPoint', geometry, null, node);
} else if (type === ol.geom.GeometryType.LINESTRING) {
} else if (type === ol.geom.GeometryType.LINE_STRING) {
if (this.curve === true) {
child = this.writeNode('Curve', geometry, null, node);
} else {
child = this.writeNode('LineString', geometry, null, node);
}
} else if (type === ol.geom.GeometryType.LINEARRING) {
} else if (type === ol.geom.GeometryType.LINEAR_RING) {
child = this.writeNode('LinearRing', geometry.getCoordinates(), null,
node);
} else if (type === ol.geom.GeometryType.MULTILINESTRING) {
} else if (type === ol.geom.GeometryType.MULTI_LINE_STRING) {
if (this.multiCurve === false) {
child = this.writeNode('MultiLineString', geometry, null, node);
} else {
@@ -52,13 +52,13 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
} else {
child = this.writeNode('Polygon', geometry, null, node);
}
} else if (type === ol.geom.GeometryType.MULTIPOLYGON) {
} else if (type === ol.geom.GeometryType.MULTI_POLYGON) {
if (this.multiSurface === false) {
child = this.writeNode('MultiPolygon', geometry, null, node);
} else {
child = this.writeNode('MultiSurface', geometry, null, node);
}
} else if (type === ol.geom.GeometryType.GEOMETRYCOLLECTION) {
} else if (type === ol.geom.GeometryType.GEOMETRY_COLLECTION) {
child = this.writeNode('MultiGeometry', geometry, null, node);
}
if (goog.isDefAndNotNull(this.srsName)) {
@@ -86,7 +86,7 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
[node, coordinates, container]);
this.readChildNodes(node, coordinates);
var linestring = {
type: ol.geom.GeometryType.LINESTRING,
type: ol.geom.GeometryType.LINE_STRING,
coordinates: coordinates[0]
};
// in the case of a multi geometry this is parts
@@ -176,7 +176,7 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
[node, parts, container]);
this.readChildNodes(node, parts);
container.geometry = {
type: ol.geom.GeometryType.MULTILINESTRING,
type: ol.geom.GeometryType.MULTI_LINE_STRING,
parts: parts
};
},
@@ -189,7 +189,7 @@ ol.parser.ogc.GML_v3 = function(opt_options) {
[node, parts, container]);
this.readChildNodes(node, parts);
container.geometry = {
type: ol.geom.GeometryType.MULTIPOLYGON,
type: ol.geom.GeometryType.MULTI_POLYGON,
parts: parts
};
},

View File

@@ -277,7 +277,7 @@ ol.renderer.canvas.VectorLayer.prototype.getFeaturesForPixel =
geom = candidate.getGeometry();
type = geom.getType();
if (type === ol.geom.GeometryType.POINT ||
type === ol.geom.GeometryType.MULTIPOINT) {
type === ol.geom.GeometryType.MULTI_POINT) {
// For points, check if the pixel coordinate is inside the candidate's
// symbol
uid = goog.getUid(candidate);

View File

@@ -68,7 +68,7 @@ ol.style.Fill.prototype.createLiteral = function(featureOrType) {
var literal = null;
if (type === ol.geom.GeometryType.POLYGON ||
type === ol.geom.GeometryType.MULTIPOLYGON) {
type === ol.geom.GeometryType.MULTI_POLYGON) {
var color = ol.expr.evaluateFeature(this.color_, feature);
goog.asserts.assertString(

View File

@@ -112,7 +112,7 @@ ol.style.Icon.prototype.createLiteral = function(featureOrType) {
var literal = null;
if (type === ol.geom.GeometryType.POINT ||
type === ol.geom.GeometryType.MULTIPOINT) {
type === ol.geom.GeometryType.MULTI_POINT) {
var url = ol.expr.evaluateFeature(this.url_, feature);
goog.asserts.assertString(url, 'url must be a string');

View File

@@ -84,7 +84,7 @@ ol.style.Shape.prototype.createLiteral = function(featureOrType) {
var literal = null;
if (type === ol.geom.GeometryType.POINT ||
type === ol.geom.GeometryType.MULTIPOINT) {
type === ol.geom.GeometryType.MULTI_POINT) {
var size = Number(ol.expr.evaluateFeature(this.size_, feature));
goog.asserts.assert(!isNaN(size), 'size must be a number');

View File

@@ -93,8 +93,8 @@ ol.style.Stroke.prototype.createLiteral = function(featureOrType) {
goog.asserts.assert(!isNaN(zIndex), 'zIndex must be a number');
var literal = null;
if (type === ol.geom.GeometryType.LINESTRING ||
type === ol.geom.GeometryType.MULTILINESTRING) {
if (type === ol.geom.GeometryType.LINE_STRING ||
type === ol.geom.GeometryType.MULTI_LINE_STRING) {
literal = new ol.style.LineLiteral({
color: color,
opacity: opacity,
@@ -102,7 +102,7 @@ ol.style.Stroke.prototype.createLiteral = function(featureOrType) {
zIndex: zIndex
});
} else if (type === ol.geom.GeometryType.POLYGON ||
type === ol.geom.GeometryType.MULTIPOLYGON) {
type === ol.geom.GeometryType.MULTI_POLYGON) {
literal = new ol.style.PolygonLiteral({
strokeColor: color,
strokeOpacity: opacity,