in JSLib/src/odata-xml.js [483:530]
var xmlODataInferSpatialValueGeoJsonType = function (value, edmType) {
/// <summary>Infers the GeoJSON type from the spatial property value and the edm type name.</summary>
/// <param name="value" type="Object">Spatial property value in GeoJSON format.</param>
/// <param name="edmType" type="String" mayBeNull="true" optional="true">Spatial property edm type.<param>
/// <remarks>
/// If the edmType parameter is null, undefined, "Edm.Geometry" or "Edm.Geography", then the function returns
/// the GeoJSON type indicated by the value's type property.
///
/// If the edmType parameter is specified or is not one of the base spatial types, then it is used to
/// determine the GeoJSON type and the value's type property is ignored.
/// </remarks>
/// <returns>New DOM element in the GML namespace for the spatial value. </returns>
if (edmType === EDM_GEOMETRY || edmType === EDM_GEOGRAPHY) {
return value && value.type;
}
if (edmType === EDM_GEOMETRY_POINT || edmType === EDM_GEOGRAPHY_POINT) {
return GEOJSON_POINT;
}
if (edmType === EDM_GEOMETRY_LINESTRING || edmType === EDM_GEOGRAPHY_LINESTRING) {
return GEOJSON_LINESTRING;
}
if (edmType === EDM_GEOMETRY_POLYGON || edmType === EDM_GEOGRAPHY_POLYGON) {
return GEOJSON_POLYGON;
}
if (edmType === EDM_GEOMETRY_COLLECTION || edmType === EDM_GEOGRAPHY_COLLECTION) {
return GEOJSON_GEOMETRYCOLLECTION;
}
if (edmType === EDM_GEOMETRY_MULTIPOLYGON || edmType === EDM_GEOGRAPHY_MULTIPOLYGON) {
return GEOJSON_MULTIPOLYGON;
}
if (edmType === EDM_GEOMETRY_MULTILINESTRING || edmType === EDM_GEOGRAPHY_MULTILINESTRING) {
return GEOJSON_MULTILINESTRING;
}
if (edmType === EDM_GEOMETRY_MULTIPOINT || edmType === EDM_GEOGRAPHY_MULTIPOINT) {
return GEOJSON_MULTIPOINT;
}
djsassert(false, "gmlInferGeoJsonType - edm type <" + edmType + "> was unexpected!!");
return null;
};