POST
|
Please excuse the delay in response, I can't provide you with access to that data, I was checking if I could. The to the issue was to run the following, when the view is stationary: this.featureLayer.applyEdits({
addFeatures: <new features>,
deleteFeatures: <current features>,
}).then(function (editResult) {
console.log(editResult);
r(null)
}); Which removes all the current features on the map, and adds them again given the current extent, which causes them to render, resolving the issue. I guess due to the fully zoomed out extent, the graphics are stored in the Layer View in a rough form, which is why during the query on the Layer View, and then throwing them into the Feature Layer caused the problem I was experiencing.
... View more
05-12-2025
07:09 AM
|
0
|
0
|
512
|
POST
|
Good Evening It seems to be a problem with the Feature Layer not redrawing the features, if I zoom in to that area above, and force it to query the layerView, the Feature Layer looks fine. I think when the initial query happens, the geometries are messed up, but get refreshed when zooming in. When those coloured features are added to the Feature Layer the map extent is rather zoomed out, is there a way to force the Feature Layer to redraw included Features?
... View more
05-08-2025
03:01 PM
|
0
|
0
|
610
|
POST
|
There's no way to set up a simple Stream Layer example, it would involve setting up a backend, database, frontend, and hooking it altogether, If I give you a SQL file, GO Backend, Angular Frontend, would that work? Can you run each separate part? Thanks
... View more
05-08-2025
01:57 PM
|
0
|
0
|
614
|
POST
|
Good Day I have a bunch of assets which are MutliLineStrings that are sent to a Stream Layer. I need to query them using the StreamLayerView and append some of them to a Feature Layer so I can dynamically work with them. The issue is when I clone the feature from the StreamLayerView, and add it to the Feature Layer, it doesn't show up correctly. The grey lines are from the StreamLayer, and they are correct. The red line is the one I cloned from the Layer View, and added to the Feature Layer. const query = {
outFields: ['*'],
where: '1=1',
returnGeometry: true
}
this._view.map.layers.forEach((layer: StreamLayer) => {
if (layer.type === 'stream') {
this._view.whenLayerView(layer).then((layerView: StreamLayerView) => {
layerView.queryFeatures(query).then((features) => {
const newFeatures = [];
features.features.forEach((feature) => {
newFeature.push(feature.clone())
})
})
}
})
this.featureLayer =
new FeatureLayer(
this.buildFeatureLayer(
newFeatures[0].geometry.type,
fields,
newFeatures
)
) The code above is just a sample, but what would cause the issue I'm experiencing? Is there a way to prevent it, the StreamLayer is showing the feature correctly, so I'm assuming it's a problem from the StreamLayerView query? Thanks
... View more
05-08-2025
09:59 AM
|
0
|
7
|
660
|
POST
|
Thanks! When the socket response gets heavy, 250 MB+ we have a fair amount of load, which takes a while to load, We have taken steps to chunk the data, which helps, but compression would be very welcome 🙂 Thanks
... View more
04-25-2025
11:52 AM
|
0
|
0
|
193
|
POST
|
Thank you, that would be helpful, I know this is a stupid question, so thanks for entertaining it. I'm using a server Stream, so I can't modify the fields, which is what caused the problem, the people sending the data don't believe it's an issue. Hence why i posted this thread.
... View more
04-25-2025
07:33 AM
|
1
|
0
|
446
|
POST
|
We're using Stream Layers, and I know you're not meant to use them, but people don't listen and keep trying to use bad naming conventions, so I was looking for a workaround, which I don't think exists. Thanks
... View more
04-25-2025
07:02 AM
|
0
|
0
|
455
|
POST
|
Good Day Would it be possible to use compression with the Stream Layer web socket? If so, how do you enable it, if not, why? Thanks
... View more
04-23-2025
09:50 AM
|
0
|
2
|
281
|
POST
|
Good Day Is it possible to run a feature effect query using special characters in the field name? Could I run: const query = { where "good(%) = '100'" } I know using arcade, you can do "When($feature['good(%)'] = '100')", but when I try that with non-arcade queries it doesn't work. Is there a way to pull this off? Thanks
... View more
04-23-2025
09:05 AM
|
0
|
5
|
547
|
POST
|
Good Day I have a Stream Layer that works, is there a way to add a Bearer token in the header of the Web Socket when the Stream Layer connects, if so, how? Here is my current Stream Layer object: const websocket = 'ws://blah'
return new StreamLayer({
fields: metaLayer ? this._metaFields : fields,
geometryType: geometry,
id: streamLayerId,
labelingInfo: [layerLabelClass],
maxReconnectionAttempts: 100,
maxReconnectionInterval: 10,
objectIdField: 'objectId',
renderer: renderSetting,
timeInfo: {
trackIdField: "assetSectionId"
},
webSocketUrl: `${websocket}`,
updateInterval: 100
}) Thanks
... View more
04-09-2025
07:09 AM
|
0
|
1
|
247
|
POST
|
Good Day Would it be possible to use GZIP compression with the Stream Layer web socket? If so, how do you enable it, if not, why? Thanks
... View more
04-07-2025
10:54 AM
|
0
|
0
|
169
|
POST
|
Good Day I can't use the layerView query because there is no guarantee the layerView is zoomed out so the extent captures the entire map. What I opt'd to do instead is record the ID of all features that I excluded. When I'm going to select them, by adding a graphic highlight, check the list, and if the matching index of the ID is -1, I know it's not excluded. I think it's the best workaround. Is there any way to query a layerView so it considers the entire map? I know you can pass a geometry, could I use that to override the visible area, and return everything? Using the layerView would be very helpful, but I don't think it will work for my use case because I don't know what the user is looking at. Thanks
... View more
04-04-2025
08:03 AM
|
0
|
1
|
257
|
POST
|
Good Day I have a situation where I need to hide several features in the Stream Layer, but I can't set a definitionExpression, so I'm setting the layer's featureEffect: const featureFilter = new FeatureFilter({
where: featureQuery
});
layer.layer.featureEffect = new FeatureEffect({
filter: featureFilter,
excludedEffect: "opacity(0%)"
}); This works, and the features “disappear”. The issue I have, they still respond to the “hitTest”, so if I have a sketchWidget active and do something like: this.sketchWidgetPointerUpEvent = this._view.on("pointer-up", (event) => {
this._view.hitTest(event).then(async (response) => {
if (response.results.length && this.lassoSet) {
this.lassoSet = false;
this._view.graphics.removeAll();
const geometries = response.results.map((graphic, index: number) => {
if (graphic.graphic.geometry) {
return graphic.graphic.geometry
}
});
const queryGeometry = await geometryEngineAsync.union(geometries);
this.selectFeatures(queryGeometry);
}
});
}); My question is, how do I stop the excluded features from being selectable? Is there a better way to query the features, and I don't think using the layerView.queryFeatures would work because that would only consider what's in the active view, not what is outside the view? Is there a way to look at the effect of the feature? If I do use layerView.queryFeatures, could I force it to look at the entire map instead of the view (I don't think so). Thanks for any help provided. Thanks
... View more
04-01-2025
02:34 PM
|
0
|
3
|
326
|
POST
|
That's precisely what I'm trying to do! Thanks for the help
... View more
03-18-2025
11:15 AM
|
1
|
0
|
497
|
POST
|
Good Afternoon I think I finally found the issue! To make sure I run the progress spinner until features are on the map, I'm using an interval to carry out the following steps (generalized): 1. Wait for the Layer View 2. Build a query to find features in the Layer View 3. Run "queryFeatures" 4. If the feature count returned is >= 1, then stop the spinner. The issue is if my view extent doesn't contain any features it won't get updated, because if I zoom out they pop in. if I have the following code: const query = {
geometry: this._view.extent.clone().expand(100),
outFields: ['*'],
where: '1=1'
}
layerView.queryFeatures(query).then((features) => {
if (features.features.length) {
clearInterval(waitForFeatures)
this.layerLoadedEvent.emit(true);
}
}) How can I check the entire map? Thanks
... View more
03-14-2025
12:56 PM
|
0
|
2
|
513
|
Title | Kudos | Posted |
---|---|---|
1 | 04-25-2025 07:33 AM | |
1 | 03-18-2025 11:15 AM | |
1 | 10-07-2022 08:14 AM | |
1 | 08-25-2023 10:47 AM | |
1 | 02-23-2023 08:22 AM |
Online Status |
Offline
|
Date Last Visited |
05-12-2025
07:39 AM
|