mirror of https://github.com/tidwall/tile38.git
115 lines
3.9 KiB
Go
115 lines
3.9 KiB
Go
package geojson
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestFeatureCollection(t *testing.T) {
|
|
testJSON(t, `{
|
|
|
|
"type": "FeatureCollection",
|
|
"features": [
|
|
{
|
|
"type": "Feature",
|
|
"geometry": {
|
|
"type": "Point","coordinates": [-80.87088507656375,35.21515162500578]
|
|
},
|
|
"properties": {
|
|
"name": "ABBOTT NEIGHBORHOOD PARK","address": "1300 SPRUCE ST"
|
|
}
|
|
},
|
|
{
|
|
"type": "Feature",
|
|
"geometry": {
|
|
"type": "Point","coordinates": [-80.83775386582222,35.24980190252168]
|
|
},
|
|
"properties": {
|
|
"name": "DOUBLE OAKS CENTER","address": "1326 WOODWARD AV"
|
|
}
|
|
},
|
|
{
|
|
"type": "Feature",
|
|
"geometry": {
|
|
"type": "Point","coordinates": [-80.83827000459532,35.25674709224663]
|
|
},
|
|
"properties": {
|
|
"name": "DOUBLE OAKS NEIGHBORHOOD PARK","address": "2605 DOUBLE OAKS RD"
|
|
}
|
|
},
|
|
{
|
|
"type": "Feature",
|
|
"geometry": {
|
|
"type": "Point","coordinates": [-80.83697759172735,35.25751734669229]
|
|
},
|
|
"properties": {
|
|
"name": "DOUBLE OAKS POOL","address": "1200 NEWLAND RD"
|
|
}
|
|
},
|
|
{
|
|
"type": "Feature",
|
|
"geometry": {
|
|
"type": "Point","coordinates": [-80.81647652154736,35.40148708491418]
|
|
},
|
|
"properties": {
|
|
"name": "DAVID B. WAYMER FLYING REGIONAL PARK","address": "15401 HOLBROOKS RD"
|
|
}
|
|
},
|
|
{
|
|
"type": "Feature",
|
|
"geometry": {
|
|
"type": "Point","coordinates": [-80.83556459443902,35.39917224760999]
|
|
},
|
|
"properties": {
|
|
"name": "DAVID B. WAYMER COMMUNITY PARK","address": "302 HOLBROOKS RD"
|
|
}
|
|
},
|
|
{
|
|
"type": "Feature",
|
|
"geometry": {
|
|
"type": "Polygon","coordinates": [
|
|
[
|
|
[-80.72487831115721,35.26545403190955],
|
|
[-80.72135925292969,35.26727607954368],
|
|
[-80.71517944335938,35.26769654625573],
|
|
[-80.7125186920166,35.27035945142482],
|
|
[-80.70857048034668,35.268257165144064],
|
|
[-80.70479393005371,35.268397319259996],
|
|
[-80.70324897766113,35.26503355355979],
|
|
[-80.71088790893555,35.2553619492954],
|
|
[-80.71681022644043,35.2553619492954],
|
|
[-80.7150936126709,35.26054831539319],
|
|
[-80.71869850158691,35.26026797976481],
|
|
[-80.72032928466797,35.26061839914875],
|
|
[-80.72264671325684,35.26033806376283],
|
|
[-80.72487831115721,35.26545403190955]
|
|
]
|
|
]
|
|
},
|
|
"properties": {
|
|
"name": "Plaza Road Park"
|
|
}
|
|
}
|
|
]
|
|
}`)
|
|
}
|
|
|
|
func TestPointBounding(t *testing.T) {
|
|
featureCollectionJSON := `{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-75.1,56.283333]}}]}`
|
|
polyFeatureJSON := `{"type": "FeatureCollection","features": [{"type": "Feature","properties": {},"geometry": {"type": "Polygon","coordinates": [[
|
|
[-112.8515625,-29.535229562948444],
|
|
[85.4296875,-2.535229562948444],
|
|
[85.4296875,65.36683689226321],
|
|
[-112.8515625,65.36683689226321],
|
|
[-112.8515625,-29.535229562948444]
|
|
]]}}]}`
|
|
|
|
featureCollection := testJSON(t, featureCollectionJSON).(FeatureCollection)
|
|
poly := testJSON(t, polyFeatureJSON).(FeatureCollection)
|
|
|
|
r1 := featureCollection.Within(poly)
|
|
r2 := featureCollection.Intersects(poly)
|
|
if r1 != r2 || !r1 {
|
|
t.Fatalf("expected %v/%v, got %v/%v", true, true, r1, r2)
|
|
}
|
|
}
|