mirror of
https://github.com/heavyai/heavyai-charting.git
synced 2026-02-01 16:00:04 +00:00
[LASSO FILTER] wrap poly filter in parens (#2433)
* [LASSO FILTER] wrap poly filter in parens * [MAP MIXIN] use null when lon/lat out of bounds for initial bounds * [LASSO FILTER] fix parens in multi circle statement
This commit is contained in:
parent
d07c97ab7f
commit
712b5f7846
@ -419,10 +419,10 @@ export default function mapMixin (_chart, chartDivId, _mapboxgl, _MapboxDraw = M
|
||||
return initialBounds
|
||||
}
|
||||
|
||||
var latMaxSafe = bounds.latMax < LATMAX ? bounds.latMax : LATMAX
|
||||
var latMinSafe = bounds.latMin > LATMIN ? bounds.latMin : LATMIN
|
||||
var lonMaxSafe = bounds.lonMax < LONMAX ? bounds.lonMax : LONMAX
|
||||
var lonMinSafe = bounds.lonMin > LONMIN ? bounds.lonMin : LONMIN
|
||||
var latMaxSafe = bounds.latMax < LATMAX ? bounds.latMax : null
|
||||
var latMinSafe = bounds.latMin > LATMIN ? bounds.latMin : null
|
||||
var lonMaxSafe = bounds.lonMax < LONMAX ? bounds.lonMax : null
|
||||
var lonMinSafe = bounds.lonMin > LONMIN ? bounds.lonMin : null
|
||||
|
||||
var sw = new _mapboxgl.LngLat(lonMinSafe, latMinSafe)
|
||||
var ne = new _mapboxgl.LngLat(lonMaxSafe, latMaxSafe)
|
||||
|
||||
@ -77,7 +77,7 @@ export function convertGeojsonToSql (features, px, py) {
|
||||
return clause.substring(0, clause.length - 3)
|
||||
}
|
||||
}).join(" OR (")
|
||||
sql = sql + `(${px} IS NOT NULL AND ${py} IS NOT NULL) AND (${triangleClause})`
|
||||
sql = sql + `((${px} IS NOT NULL AND ${py} IS NOT NULL) AND (${triangleClause}))`
|
||||
}
|
||||
|
||||
if (circleStmts.length) {
|
||||
@ -86,6 +86,8 @@ export function convertGeojsonToSql (features, px, py) {
|
||||
} else {
|
||||
sql = sql + `(${circleStmts.join(" OR ")})`
|
||||
}
|
||||
|
||||
sql = `(${sql})`
|
||||
}
|
||||
|
||||
if (triangleTests.length) {
|
||||
|
||||
@ -39,7 +39,7 @@ describe("convertGeojsonToSql", () => {
|
||||
]
|
||||
|
||||
expect(utils.convertGeojsonToSql(features, "lon", "lat")).to.equal(
|
||||
"(UNLIKELY( lon >= -128.320313 AND lon <= -40.429688 AND lat >= -9.661713 AND lat <= 51.483925)) AND (lon IS NOT NULL AND lat IS NOT NULL) AND (((((lon)-(-84.023438))*((22.069062)-(51.483925)) - ((-40.429688)-(-84.023438))*((lat)-(51.483925)) < 0.0) = (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0))) AND (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0) = (((lon)-(-40.429688))*((29.958472)-(22.069062)) - ((-128.320313)-(-40.429688))*((lat)-(22.069062)) < 0.0) OR (((((lon)-(-124.453125))*((29.958472)-(-9.661713)) - ((-128.320313)-(-124.453125))*((lat)-(-9.661713)) < 0.0) = (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0))) AND (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0) = (((lon)-(-128.320313))*((22.069062)-(29.958472)) - ((-40.429688)-(-128.320313))*((lat)-(29.958472)) < 0.0)"
|
||||
"(UNLIKELY( lon >= -128.320313 AND lon <= -40.429688 AND lat >= -9.661713 AND lat <= 51.483925)) AND ((lon IS NOT NULL AND lat IS NOT NULL) AND (((((lon)-(-84.023438))*((22.069062)-(51.483925)) - ((-40.429688)-(-84.023438))*((lat)-(51.483925)) < 0.0) = (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0))) AND (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0) = (((lon)-(-40.429688))*((29.958472)-(22.069062)) - ((-128.320313)-(-40.429688))*((lat)-(22.069062)) < 0.0) OR (((((lon)-(-124.453125))*((29.958472)-(-9.661713)) - ((-128.320313)-(-124.453125))*((lat)-(-9.661713)) < 0.0) = (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0))) AND (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0) = (((lon)-(-128.320313))*((22.069062)-(29.958472)) - ((-40.429688)-(-128.320313))*((lat)-(29.958472)) < 0.0))"
|
||||
)
|
||||
})
|
||||
|
||||
@ -61,7 +61,7 @@ describe("convertGeojsonToSql", () => {
|
||||
]
|
||||
|
||||
expect(utils.convertGeojsonToSql(features, "lon", "lat")).to.equal(
|
||||
"(DISTANCE_IN_METERS(0, 0, lon, lat) < 1000000)"
|
||||
"((DISTANCE_IN_METERS(0, 0, lon, lat) < 1000000))"
|
||||
)
|
||||
})
|
||||
|
||||
@ -138,7 +138,7 @@ describe("convertGeojsonToSql", () => {
|
||||
]
|
||||
|
||||
expect(utils.convertGeojsonToSql(features, "lon", "lat")).to.equal(
|
||||
"(UNLIKELY( lon >= -128.320313 AND lon <= -40.429688 AND lat >= -9.661713 AND lat <= 51.483925)) AND (lon IS NOT NULL AND lat IS NOT NULL) AND (((((lon)-(-84.023438))*((22.069062)-(51.483925)) - ((-40.429688)-(-84.023438))*((lat)-(51.483925)) < 0.0) = (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0))) AND (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0) = (((lon)-(-40.429688))*((29.958472)-(22.069062)) - ((-128.320313)-(-40.429688))*((lat)-(22.069062)) < 0.0) OR (((((lon)-(-124.453125))*((29.958472)-(-9.661713)) - ((-128.320313)-(-124.453125))*((lat)-(-9.661713)) < 0.0) = (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0))) AND (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0) = (((lon)-(-128.320313))*((22.069062)-(29.958472)) - ((-40.429688)-(-128.320313))*((lat)-(29.958472)) < 0.0) OR (DISTANCE_IN_METERS(0, 0, lon, lat) < 1000000)"
|
||||
"(UNLIKELY( lon >= -128.320313 AND lon <= -40.429688 AND lat >= -9.661713 AND lat <= 51.483925)) AND (((lon IS NOT NULL AND lat IS NOT NULL) AND (((((lon)-(-84.023438))*((22.069062)-(51.483925)) - ((-40.429688)-(-84.023438))*((lat)-(51.483925)) < 0.0) = (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0))) AND (((lon)-(-128.320313))*((51.483925)-(29.958472)) - ((-84.023438)-(-128.320313))*((lat)-(29.958472)) < 0.0) = (((lon)-(-40.429688))*((29.958472)-(22.069062)) - ((-128.320313)-(-40.429688))*((lat)-(22.069062)) < 0.0) OR (((((lon)-(-124.453125))*((29.958472)-(-9.661713)) - ((-128.320313)-(-124.453125))*((lat)-(-9.661713)) < 0.0) = (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0))) AND (((lon)-(-40.429688))*((-9.661713)-(22.069062)) - ((-124.453125)-(-40.429688))*((lat)-(22.069062)) < 0.0) = (((lon)-(-128.320313))*((22.069062)-(29.958472)) - ((-40.429688)-(-128.320313))*((lat)-(29.958472)) < 0.0)) OR (DISTANCE_IN_METERS(0, 0, lon, lat) < 1000000))"
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user