Fix geometry collection parsing
This commit is contained in:
parent
c3579b98a4
commit
556a3db60e
1 changed files with 15 additions and 3 deletions
|
@ -342,7 +342,7 @@ impl Serialize for Geometry {
|
|||
let mut map = s.serialize_map(Some(2))?;
|
||||
map.serialize_key("type")?;
|
||||
map.serialize_value("GeometryCollection")?;
|
||||
map.serialize_key("coordinates")?;
|
||||
map.serialize_key("geometries")?;
|
||||
map.serialize_value(v)?;
|
||||
map.end()
|
||||
}
|
||||
|
@ -521,11 +521,11 @@ fn collection(i: &str) -> IResult<&str, Geometry> {
|
|||
|i| {
|
||||
let (i, _) = preceded(key_type, collection_type)(i)?;
|
||||
let (i, _) = delimited(mightbespace, tag(","), mightbespace)(i)?;
|
||||
let (i, v) = preceded(key_vals, collection_vals)(i)?;
|
||||
let (i, v) = preceded(key_geom, collection_vals)(i)?;
|
||||
Ok((i, v))
|
||||
},
|
||||
|i| {
|
||||
let (i, v) = preceded(key_vals, collection_vals)(i)?;
|
||||
let (i, v) = preceded(key_geom, collection_vals)(i)?;
|
||||
let (i, _) = delimited(mightbespace, tag(","), mightbespace)(i)?;
|
||||
let (i, _) = preceded(key_type, collection_type)(i)?;
|
||||
Ok((i, v))
|
||||
|
@ -712,6 +712,18 @@ fn key_vals(i: &str) -> IResult<&str, &str> {
|
|||
Ok((i, v))
|
||||
}
|
||||
|
||||
fn key_geom(i: &str) -> IResult<&str, &str> {
|
||||
let (i, v) = alt((
|
||||
tag("geometries"),
|
||||
delimited(tag(SINGLE), tag("geometries"), tag(SINGLE)),
|
||||
delimited(tag(DOUBLE), tag("geometries"), tag(DOUBLE)),
|
||||
))(i)?;
|
||||
let (i, _) = mightbespace(i)?;
|
||||
let (i, _) = tag(":")(i)?;
|
||||
let (i, _) = mightbespace(i)?;
|
||||
Ok((i, v))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
||||
|
|
Loading…
Reference in a new issue