mirror of https://github.com/tidwall/tile38.git
86 lines
3.5 KiB
Go
86 lines
3.5 KiB
Go
package geojson
|
|
|
|
import "testing"
|
|
|
|
func TestGeometryCollection(t *testing.T) {
|
|
testJSON(t, `{
|
|
"type": "GeometryCollection",
|
|
"geometries": [
|
|
{
|
|
"type": "Point",
|
|
"coordinates": [-80.66080570220947,35.04939206472683]
|
|
},
|
|
{
|
|
"type": "Polygon",
|
|
"coordinates": [
|
|
[
|
|
[-80.66458225250244,35.04496519190309],
|
|
[-80.66344499588013,35.04603679820616],
|
|
[-80.66258668899536,35.045580049697556],
|
|
[-80.66387414932251,35.044280059194946],
|
|
[-80.66458225250244,35.04496519190309]
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"type": "LineString",
|
|
"coordinates": [
|
|
[-80.66237211227417,35.05950973022538],
|
|
[-80.66269397735596,35.0592638296087],
|
|
[-80.66284418106079,35.05893010615862],
|
|
[-80.66308021545409,35.05833291342246],
|
|
[-80.66359519958496,35.057753281001425],
|
|
[-80.66387414932251,35.05740198662245],
|
|
[-80.66441059112549,35.05703312589789],
|
|
[-80.66486120223999,35.056787217822475],
|
|
[-80.66541910171509,35.05650617911516],
|
|
[-80.66563367843628,35.05631296444281],
|
|
[-80.66601991653441,35.055891403570705],
|
|
[-80.66619157791138,35.05545227534804],
|
|
[-80.66619157791138,35.05517123204622],
|
|
[-80.66625595092773,35.05489018777713],
|
|
[-80.6662130355835,35.054222703761525],
|
|
[-80.6662130355835,35.05392409072499],
|
|
[-80.66595554351807,35.05290528508858],
|
|
[-80.66569805145262,35.052044560077285],
|
|
[-80.66550493240356,35.0514824490509],
|
|
[-80.665762424469,35.05048117920187],
|
|
[-80.66617012023926,35.04972582715769],
|
|
[-80.66651344299316,35.049286665781096],
|
|
[-80.66692113876343,35.0485313026898],
|
|
[-80.66700696945189,35.048215102112344],
|
|
[-80.66707134246826,35.04777593261294],
|
|
[-80.66704988479614,35.04738946150025],
|
|
[-80.66696405410767,35.04698542156371],
|
|
[-80.66681385040283,35.046353007216055],
|
|
[-80.66659927368164,35.04596652937105],
|
|
[-80.66640615463257,35.04561518428889],
|
|
[-80.6659984588623,35.045193568195565],
|
|
[-80.66552639007568,35.044877354697526],
|
|
[-80.6649899482727,35.04454357245502],
|
|
[-80.66449642181396,35.04417465365292],
|
|
[-80.66385269165039,35.04387600387859],
|
|
[-80.66303730010986,35.043717894732545]
|
|
]
|
|
}
|
|
]
|
|
}`)
|
|
}
|
|
func TestPointBoundingGeomColl(t *testing.T) {
|
|
geometryCollectionJSON := `{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[-75.1,56.283333]}]}`
|
|
polyFeatureJSON := `{"type": "GeometryCollection","geometries": [{"type": "Polygon","coordinates": [[
|
|
[-112.8515625,-29.535229562948444],
|
|
[85.4296875,-2.535229562948444],
|
|
[85.4296875,65.36683689226321],
|
|
[-112.8515625,65.36683689226321],
|
|
[-112.8515625,-29.535229562948444]
|
|
]]}]}`
|
|
geometryCollection := testJSON(t, geometryCollectionJSON).(GeometryCollection)
|
|
poly := testJSON(t, polyFeatureJSON).(GeometryCollection)
|
|
r1 := geometryCollection.Within(poly)
|
|
r2 := geometryCollection.Intersects(poly)
|
|
if r1 != r2 || !r1 {
|
|
t.Fatalf("expected %v/%v, got %v/%v", true, true, r1, r2)
|
|
}
|
|
}
|