Skip to content

Commit 07986a6

Browse files
author
Rick Saccoccia
committed
Fixed outFields and returnGeometry for query generation
1 parent e40718f commit 07986a6

File tree

3 files changed

+17
-31
lines changed

3 files changed

+17
-31
lines changed

plugins/arcgis/service/src/FeatureQuerier.ts

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,14 @@ export class FeatureQuerier {
5959
queryUrl.searchParams.set('where', `${this._config.observationIdField} = ${observationId}`);
6060
}
6161
queryUrl.searchParams.set('outFields', this.outFields(fields))
62-
queryUrl.searchParams.set('returnGeometry', this.returnGeometry(geometry))
63-
62+
queryUrl.searchParams.set('returnGeometry', geometry === false ? 'false' : 'true')
63+
this._console.info('ArcGIS query: ' + queryUrl)
64+
6465
const queryResponse = await request(queryUrl.toString(), {
6566
authentication: this._identityManager
6667
});
6768

68-
this._console.info('ArcGIS response for ' + queryUrl + ' ' + queryResponse)
69+
this._console.info('ArcGIS response for ' + queryUrl + ' ' + queryResponse.toString)
6970
const result = JSON.parse(queryResponse) as QueryObjectResult
7071
response(result);
7172
}
@@ -80,9 +81,13 @@ export class FeatureQuerier {
8081
const queryUrl = new URL(this._url)
8182
queryUrl.searchParams.set('where', `${this._config.observationIdField} IS NOT NULL`);
8283
queryUrl.searchParams.set('outFields', this.outFields(fields));
83-
queryUrl.searchParams.set('returnGeometry', this.returnGeometry(geometry));
84+
queryUrl.searchParams.set('returnGeometry', geometry === false ? 'false' : 'true');
85+
86+
this._console.info('ArcGIS query: ' + queryUrl)
87+
8488
const queryResponse = await request(queryUrl.toString(), {
85-
authentication: this._identityManager
89+
authentication: this._identityManager,
90+
params: { f: 'json' }
8691
});
8792

8893
this._console.info('ArcGIS response for ' + queryUrl + ' ' + queryResponse)
@@ -100,7 +105,9 @@ export class FeatureQuerier {
100105
queryUrl.searchParams.set('where', `${field} IS NOT NULL`);
101106
queryUrl.searchParams.set('returnDistinctValues', 'true');
102107
queryUrl.searchParams.set('outFields', this.outFields([field]));
103-
queryUrl.searchParams.set('returnGeometry', this.returnGeometry(false));
108+
queryUrl.searchParams.set('returnGeometry', 'false');
109+
this._console.info('ArcGIS query: ' + queryUrl)
110+
104111
const queryResponse = await request(queryUrl.toString(), {
105112
authentication: this._identityManager
106113

@@ -116,31 +123,11 @@ export class FeatureQuerier {
116123
* @returns out fields
117124
*/
118125
private outFields(fields?: string[]): string {
119-
let outFields = '&outFields='
120126
if (fields != null && fields.length > 0) {
121-
for (let i = 0; i < fields.length; i++) {
122-
if (i > 0) {
123-
outFields += ","
124-
}
125-
outFields += fields[i]
126-
}
127-
} else{
128-
outFields += '*'
129-
}
130-
return outFields
131-
}
132-
133-
/**
134-
* Build the return geometry query parameter
135-
* @param fields query fields
136-
* @returns out fields
137-
*/
138-
private returnGeometry(geometry?: boolean): string {
139-
let returnGeometry = ''
140-
if (geometry != null && !geometry) {
141-
returnGeometry = '&returnGeometry=false'
127+
return fields.join(',');
128+
} else {
129+
return '*';
142130
}
143-
return returnGeometry
144131
}
145132

146133
}

plugins/arcgis/service/src/FeatureServiceAdmin.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ export class FeatureServiceAdmin {
111111
}
112112
}
113113

114-
// TODO - where does New_field and New_field_2 come from with each startup?
115114
if (addFields.length > 0) {
116115
this.addFields(service, featureLayer, addFields)
117116
}

plugins/arcgis/service/src/ObservationProcessor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ export class ObservationProcessor {
313313
const identityManager = await getIdentityManager(featureServiceConfig, new HttpClient(console))
314314
const layerProcessor = new FeatureLayerProcessor(info, config, identityManager,this._console);
315315
this._layerProcessors.push(layerProcessor);
316-
clearTimeout(this._nextTimeout); // TODO why is this needed?
316+
// clearTimeout(this._nextTimeout); // TODO why is this needed?
317317
// this.scheduleNext(config); // TODO why is this needed when processAndScheduleNext is called upstream and ends with scheduleNext() This causes a query before updateLayer.
318318
}
319319
}

0 commit comments

Comments
 (0)