|
POST
|
You're describing exactly what our problem is! We have several areas where we build up rather complex maps with thousands of sections and assets on them, including Widgets, and no matter what I flush, free, null, destroy or delete, we always have ~100 - 200 MB of memory kicking around from each map, that I can't get rid of. In most cases this isn't an issue because people don't use our software long enough or cycle through enough maps to create an issue, but it's 100 - 200 MB each time you visit a map, so if you work with the maps for a couple hours and cycle them 10 - 15 times, you're easily holding 1GB - 2GB of memory that we have no way to free. If you come up with a solution please let me know, because apart from refreshing the site I don't know what to do. I'll take a look at your example, but I suspect I'm doing exactly the same thing - 🙂 Cheers
... View more
03-18-2021
07:24 AM
|
1
|
0
|
3739
|
|
POST
|
Not really, we just refresh the site when you move from a map page to any other page, which solves the problem. It's not ideal but it works.
... View more
03-18-2021
06:35 AM
|
0
|
5
|
4436
|
|
POST
|
Sorry about the late reply, I tested on next and this is what rendered: Which is the same kind of behaviour I'm seeing with 4.17. I'm not allowed to release the host feature layer, not my decision, sorry. I disabled and enabled all the features and the view didn't change, I left it for a solid 5 minutes to render which about 4.5 minutes longer then it ever takes. I noticed some errors in the console: Thanks
... View more
12-08-2020
08:10 AM
|
0
|
1
|
3325
|
|
POST
|
Thank you for responding. We ended up using a host feature layer as it's border line insane how much memory we use otherwise. If we build the layer ourselves we don't see the same graphical glitch as in my other post. Right now we have 1 large layer and that's all we need, it's working nicely. Thanks
... View more
12-04-2020
12:56 PM
|
0
|
1
|
1392
|
|
POST
|
I'll do both, won't be for a few hours, but I'll update this thread when it's ready. Thanks for you for getting back to me.
... View more
12-03-2020
11:29 AM
|
0
|
3
|
3358
|
|
POST
|
Can someone from ESRI please comment on this? The memory savings with 4.17 are dramatic over 4.16, if I cycle the maps ~20 times (clicking between the tabs after the map renders), the memory usage on 4.16 will be ~1.3 GB, whereas on 4.17 it's 155 MB, as read from the memory tab, after garbage collection, in the console. It would be nice if this problem could get resolved in 4.17 so we can make use of the memory savings. Thanks
... View more
12-02-2020
08:20 AM
|
0
|
0
|
3376
|
|
POST
|
It's a bug, I dropped to 4.16 and the output it right,
... View more
11-30-2020
09:31 AM
|
1
|
5
|
3383
|
|
POST
|
Good Day We have a large view of the entire country of Sweden, and when we're zoomed out the Feature Layer isn't rendering completely. If we zoom into smaller areas the view is correct, but at a zoomed out view it's very broken. We've noticed the same issue in ArcGIS Online, is this a bug? We'd like the entire country filled in, as we have data for it, not sure what's causing this.
... View more
11-29-2020
05:30 PM
|
0
|
7
|
3427
|
|
POST
|
Solved, if you're trying to do the same thing, try this, making sure to fill in username and password: const tokenURL =
'https://www.arcgis.com/sharing/generateToken?username=<>&password=<>&client=requestip&f=json'
this.http.httpGet(tokenURL).then((res: any) => {
identityManager.registerToken({
server: 'https://www.arcgis.com/sharing/rest',
token: res.token
});
/* Map Init Here */
}).catch((error) => {
console.log(error);
})
... View more
11-28-2020
12:25 PM
|
3
|
1
|
4285
|
|
POST
|
Good Day I'm trying to bypass the sign-in process to access our host feature layer from the ArcGIS JavaScript API, I tried implementing OAuth, following the guides, and used this: const info = new OAuthInfo({
appId: "<blah>",
popup: false
});
identityManager.registerOAuthInfos([info]); But every time the feature layer load it kicks me over to a sign-in page, and once I sign-in it kicks me back to our application, but to the wrong page and I enter a non-stop loop,. It is possible to use an ApplicationSession and use the Client ID / Client Secret to generate a token, which I can then register to bypass this issue? We have this function for queries: authenticate() {
this._session = new ApplicationSession({
clientId: '<blah>',
clientSecret: '<blah>'
})
} But I don't see any option to attach the authentication parameters to the FeatureLayer URL I looked up this page: https://enterprise.arcgis.com/en/server/latest/administer/windows/about-arcgis-tokens.htm which doesn't explain how to attach or generate the token, unless I'm meant to use the token from the ArcGIS Developer Portal. Thanks
... View more
11-28-2020
08:28 AM
|
0
|
2
|
4361
|
|
POST
|
Good Day This is related to another post I made about mapping 450,000 features onto the map. I moved to using a hosted feature layer, which massively helped the memory usage, but now I'm stuck as the shape file I uploaded to make the hosted feature layer doesn't have much information. Is it possible to add a field / attribute to a feature based on another set of data, on the client side after I grab that hosted feature layer? I have a large object from our DB that has colours, labels and etc... in it for the 450,000 features, one of those fields matches a value in the hosted layer, Objectdd = Objectd. When I create the renderer for the hosted feature layer I'd like to add a field / attribute into the feature so I know what it is, and later use it as a query point is this possible? Thanks
... View more
11-27-2020
01:00 PM
|
0
|
0
|
679
|
|
POST
|
Good Day I have a massive data collection of ~450, 000 features that I'm mapping on to 18 feature layers using "bins" of 25,000 features / feature layer. The following code generates those feature layers and after it runs I have 18 layers comprising my ~450, 000 features. createFeatureLayers() {
return new Promise( (r) => {
for (const prop in this._geoData) {
if (this._geoData.hasOwnProperty(prop)) {
console.time('forLoop');
for (const geometryProp in this._geoData[prop]) {
if (this._geoData[prop].hasOwnProperty(geometryProp)) {
for (const binProp in this._geoData[prop][geometryProp]) {
if (this._geoData[prop][geometryProp].hasOwnProperty(binProp)) {
const buildFeatureLayers = true;
if (buildFeatureLayers) {
const data = this._geoData[prop][geometryProp][binProp];
if (data.length > 0) {
switch (geometryProp) {
case 'lines':
const featureLayer =
this.buildFeatureSettings(data, '#000000');
if (featureLayer) {
this._layers[prop].lines[binProp] =
new this.FeatureLayer(featureLayer);
this._layers[prop].lines[binProp].maxScale = 0;
this._layers[prop].lines[binProp].minScale = 3000000;
}
break;
default:
break;
}
}
}
}
}
}
this._geoDataKeyIndex++;
}
console.timeEnd('forLoop');
}
}
})
}
buildFeatureSettings(data, colour) {
return {
source: data,
renderer: this.buildRenderSettings(data, colour),
fields: this._fields,
outFields: ['*'],
objectIdField: 'ObjectID',
geometryType: 'polyline',
spatialReference: {
wkid: 4326
},
};
}
buildRenderSettings(data, colour: string) {
return {
type: 'simple',
symbol: {
type: 'simple-line',
size: 30,
width: 3,
color: colour,
outline: {
width: 4,
color: colour,
}
},
}
}
} Once it's mapped onto my map view, the memory usage approximately doubles. What is the recommended way to handle massive data sets? Are there methods available that will remove features from the map view if they're not the current stationary view? Are there methods that will automatically add them? Thanks
... View more
11-25-2020
11:21 AM
|
0
|
3
|
1441
|
|
POST
|
Good Day Thanks for the reply, the issue is in ArcGIS API JavaScript 4.17, although I've seen this in 4.15 and 4.16. I tried playing around with the createRenderer function like so: this.smartMapper.createRenderer({
layer: this._layers[prop].polygons,
view: this._view,
outlineOptimizationEnabled: true,
sizeOptimizationEnabled: true
}).then((res) => {
console.log('Res from Smart Mapper');
console.log(res);
const renderOverride = true;
if (renderOverride) {
const renderer = res.renderer;
const rgbObj = this.hexToRGB(colour);
renderer.symbol.color = 'dodgerblue';
renderer.symbol.color = [rgbObj.r, rgbObj.g, rgbObj.b, 0.3];
renderer.symbol.outline.color = [rgbObj.r, rgbObj.g, rgbObj.b, 1];
this._layers[prop].polygons.renderer = renderer;
}
}).catch((error) => {
console.log('Smart Mapper Render Error');
console.log(error);
}) But it didn't work, at least my polygons never scaled properly with the zoom. The default render settings I use are: type: 'simple',
symbol: {
type: 'simple-fill',
size: 30,
opacity: .7,
color: [rgbObj.r, rgbObj.g, rgbObj.b, 0.3],
outline: {
width: 2,
color: [rgbObj.r, rgbObj.g, rgbObj.b, 1],
}
} For the points I use basically the same settings with the render using a simple / picture marker and a few of the internal settings changed, but essentially the same. Thanks
... View more
11-13-2020
06:32 AM
|
0
|
0
|
2196
|
|
POST
|
Good Day Is it possible to change the polygon / polyline size based on zoom? When I have points and I zoom out they're still visible, but when I have polygons / polylines they disappear when I zoom out, which is no ideal, as I have data spread over Canada. vs At this zoom level the polygon data should appear by Toronto, and get more accurate when we zoom in.
... View more
11-10-2020
02:00 PM
|
0
|
2
|
2228
|
|
POST
|
Fair enough If the test code looks fine, then there's no reason to assume our production code would have any issue, as the test code is just a simplified version. I'll admit it's not idea to look at system memory, but I think it can be helpful, but as you pointed out that opens up many, many more possible memory issues. Best thing we can do is a long run test and see how it operates / handles over the next couple weeks. Thanks for you help
... View more
10-21-2020
01:08 PM
|
1
|
0
|
2690
|
| 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 |
10-24-2025
07:12 AM
|