Work in progress
This commit is contained in:
parent
db7ad681ff
commit
af91fbc5ae
26
server.go
26
server.go
@ -58,12 +58,14 @@ func executeQuery(rw http.ResponseWriter, req *http.Request) {
|
|||||||
|
|
||||||
response := jsonQueryResponse{
|
response := jsonQueryResponse{
|
||||||
Count: len(foundEntries),
|
Count: len(foundEntries),
|
||||||
Ranges: make(map[string]jsonRange),
|
|
||||||
Columns: make(map[string]jsonColumn),
|
Columns: make(map[string]jsonColumn),
|
||||||
Records: make([]jsonRecord, 0)}
|
Records: make([]jsonRecord, 0)}
|
||||||
|
|
||||||
for name, value := range features {
|
for name, value := range features {
|
||||||
column := jsonColumn{Value: value, Steps: request.Resolution}
|
column := jsonColumn{
|
||||||
|
Bracket: jsonBracket{Max: -1, Min: 1},
|
||||||
|
Value: value,
|
||||||
|
Steps: request.Resolution}
|
||||||
|
|
||||||
hints := project(
|
hints := project(
|
||||||
entries,
|
entries,
|
||||||
@ -77,23 +79,17 @@ func executeQuery(rw http.ResponseWriter, req *http.Request) {
|
|||||||
column.Hints = append(column.Hints, jsonHint)
|
column.Hints = append(column.Hints, jsonHint)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, record := range foundEntries {
|
||||||
|
if feature, ok := record.features[name]; ok {
|
||||||
|
column.Bracket.Max = math.Max(column.Bracket.Max, feature)
|
||||||
|
column.Bracket.Min = math.Min(column.Bracket.Min, feature)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
response.Columns[name] = column
|
response.Columns[name] = column
|
||||||
}
|
}
|
||||||
|
|
||||||
for index, record := range foundEntries {
|
for index, record := range foundEntries {
|
||||||
for feature, value := range record.features {
|
|
||||||
rng, ok := response.Ranges[feature]
|
|
||||||
if ok {
|
|
||||||
rng.Max = math.Max(rng.Max, value)
|
|
||||||
rng.Min = math.Min(rng.Min, value)
|
|
||||||
} else {
|
|
||||||
rng.Max = value
|
|
||||||
rng.Min = value
|
|
||||||
}
|
|
||||||
|
|
||||||
response.Ranges[feature] = rng
|
|
||||||
}
|
|
||||||
|
|
||||||
if index >= request.MaxResults {
|
if index >= request.MaxResults {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -96,6 +96,7 @@
|
|||||||
var _onValueChanged = params.onValueChanged;
|
var _onValueChanged = params.onValueChanged;
|
||||||
var _range = params.range;
|
var _range = params.range;
|
||||||
var _scale = params.scale;
|
var _scale = params.scale;
|
||||||
|
var _bracket = params.bracket;
|
||||||
var _elements = {};
|
var _elements = {};
|
||||||
|
|
||||||
function createShapes() {
|
function createShapes() {
|
||||||
@ -121,16 +122,6 @@
|
|||||||
stroke: _borderColor
|
stroke: _borderColor
|
||||||
});
|
});
|
||||||
|
|
||||||
// bracket
|
|
||||||
_elements.bracket = _canvas.rect(
|
|
||||||
_width - _bracketSize,
|
|
||||||
0,
|
|
||||||
_bracketSize,
|
|
||||||
_height - _panelSize
|
|
||||||
).attr({
|
|
||||||
fill: '#ff0000'
|
|
||||||
});
|
|
||||||
|
|
||||||
// panel
|
// panel
|
||||||
_elements.panel = _canvas.rect(
|
_elements.panel = _canvas.rect(
|
||||||
_tickSize,
|
_tickSize,
|
||||||
@ -163,6 +154,26 @@
|
|||||||
fill: computeIndicatorColor(_data.value)
|
fill: computeIndicatorColor(_data.value)
|
||||||
}).click(clicked);
|
}).click(clicked);
|
||||||
|
|
||||||
|
console.log(_data);
|
||||||
|
|
||||||
|
// bracketMin
|
||||||
|
_elements.bracketMin = _canvas.circle(
|
||||||
|
_width - _bracketSize / 2,
|
||||||
|
valueToIndicator(_data.bracket.min),
|
||||||
|
5
|
||||||
|
).attr({
|
||||||
|
fill: '#0000ff'
|
||||||
|
});
|
||||||
|
|
||||||
|
// bracketMax
|
||||||
|
_elements.bracketMax = _canvas.circle(
|
||||||
|
_width - _bracketSize / 2,
|
||||||
|
valueToIndicator(_data.bracket.max),
|
||||||
|
5
|
||||||
|
).attr({
|
||||||
|
fill: '#ff0000'
|
||||||
|
});
|
||||||
|
|
||||||
// tick
|
// tick
|
||||||
if (_range.contains(0.0)) {
|
if (_range.contains(0.0)) {
|
||||||
var origin = valueToIndicator(0.0);
|
var origin = valueToIndicator(0.0);
|
||||||
@ -180,7 +191,8 @@
|
|||||||
_elements.backdrop,
|
_elements.backdrop,
|
||||||
_elements.indicator,
|
_elements.indicator,
|
||||||
_elements.density,
|
_elements.density,
|
||||||
_elements.bracket,
|
_elements.bracketMin,
|
||||||
|
_elements.bracketMax,
|
||||||
_elements.panel,
|
_elements.panel,
|
||||||
_elements.tick,
|
_elements.tick,
|
||||||
_elements.label
|
_elements.label
|
||||||
@ -204,6 +216,16 @@
|
|||||||
_valueAnimated = value;
|
_valueAnimated = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateBracket() {
|
||||||
|
_elements.bracketMin.attr({
|
||||||
|
y: _data.bracket.min
|
||||||
|
});
|
||||||
|
|
||||||
|
_elements.bracketMax.attr({
|
||||||
|
y: _data.bracket.max
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function updateDensity() {
|
function updateDensity() {
|
||||||
var fill = _backdropColor;
|
var fill = _backdropColor;
|
||||||
if (_data.hints.length > 0) {
|
if (_data.hints.length > 0) {
|
||||||
@ -313,6 +335,10 @@
|
|||||||
_data.hints = data.hints;
|
_data.hints = data.hints;
|
||||||
updateDensity();
|
updateDensity();
|
||||||
}
|
}
|
||||||
|
if (_.has(data, 'bracket')) {
|
||||||
|
_data.bracket = data.bracket;
|
||||||
|
updateBracket();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
createShapes();
|
createShapes();
|
||||||
|
@ -120,7 +120,8 @@
|
|||||||
_ctx.query.features[feature] = column.value;
|
_ctx.query.features[feature] = column.value;
|
||||||
columns[feature] = {
|
columns[feature] = {
|
||||||
value: column.value,
|
value: column.value,
|
||||||
hints: column.hints
|
hints: column.hints,
|
||||||
|
bracket: column.bracket
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
types.go
4
types.go
@ -49,6 +49,7 @@ type jsonQueryRequest struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type jsonColumn struct {
|
type jsonColumn struct {
|
||||||
|
Bracket jsonBracket `json:"bracket"`
|
||||||
Hints []jsonProjection `json:"hints"`
|
Hints []jsonProjection `json:"hints"`
|
||||||
Steps int `json:"steps"`
|
Steps int `json:"steps"`
|
||||||
Value float64 `json:"value"`
|
Value float64 `json:"value"`
|
||||||
@ -72,7 +73,7 @@ type jsonRecord struct {
|
|||||||
Url string `json:"url"`
|
Url string `json:"url"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type jsonRange struct {
|
type jsonBracket struct {
|
||||||
Min float64 `json:"min"`
|
Min float64 `json:"min"`
|
||||||
Max float64 `json:"max"`
|
Max float64 `json:"max"`
|
||||||
}
|
}
|
||||||
@ -80,7 +81,6 @@ type jsonRange struct {
|
|||||||
type jsonQueryResponse struct {
|
type jsonQueryResponse struct {
|
||||||
Columns map[string]jsonColumn `json:"columns"`
|
Columns map[string]jsonColumn `json:"columns"`
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
Ranges map[string]jsonRange `json:"ranges"`
|
|
||||||
Records []jsonRecord `json:"records"`
|
Records []jsonRecord `json:"records"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user