POST
|
Thank you so much for your help, Rene. Look forward to the release of 4.11!
... View more
03-13-2019
03:14 PM
|
0
|
0
|
2946
|
POST
|
Thank you so much for your reply, Rene. You have given me renewed hope that the API will be able to satisfy our performance needs. Right now I am working with a dataset of about 13,000 polygons, comprised of 2.4 million points. I'm not sure if that sounds unreasonable, but I have found a few other maps frameworks that can handle it no problem. I just don't like the others as much in general, and I am really hoping to make ArcGIS work because it is the overall best maps API I have found. Does version 4.10 of the API use WebGL when rendering a FeatureLayer with GeoJSON features in a 2D MapView? This blog post, entitled FeatureLayer rendering: taking advantage of WebGL, from September 2017 indicates that, as of version 4.5, WebGL is used when rendering a FeatureLayer with hosted on AGOL and that WebGL support for features loaded on the client side was in the pipeline. This new technology is currently only available when visualizing feature services hosted on ArcGIS Online. Support for client-side feature collections and non-hosted enterprise feature services will be supported at a later release. Has the API since implemented a WebGL solution for client-side feature collections. If not, is WebGL part of the performance upgrade that you mentioned is coming in 4.11?
... View more
03-13-2019
09:18 AM
|
0
|
2
|
2946
|
POST
|
Thanks, I thought WebGL was used by default, but I wasn't sure. As for your suggestions of Server or AGOL, I appreciate them, but unfortunately, I need to be able to serve the data myself and build the features client side, for cost and regulatory reasons. I'm finding that may not be possible to do in a satisfactory way though.
... View more
03-12-2019
10:15 AM
|
1
|
0
|
2946
|
POST
|
Thank you very much for your reply Juan. I am using version 4.10 of the API and am not using Dojo. Does this option still exist in version 4.10? If so, how would I set it? Thanks!
... View more
03-12-2019
09:57 AM
|
0
|
2
|
2946
|
POST
|
I have a very large set of polygons to display, and I cannot find a way to load them that is sufficiently fast and perfomant. I have tried GeoJSON, but loading is extremely slow.
... View more
03-12-2019
09:37 AM
|
0
|
10
|
4453
|
POST
|
In version 2.4 (Dec. 2017), TypeScript introduced the concept of a weak type. A weak type is any type that is defined by only optional properties. Any type that contains nothing but a set of all-optional properties is considered to be weak. As defined in the type declarations file for the ArcGIS API for JavaScript (node_modules/@types/arcgis-api-js/index.d.ts), the interface RendererProperties defines a weak type, since it specifies only one property and that property is optional. export const Renderer: RendererConstructor;
interface RendererProperties {
/**
* Authoring metadata only included in renderers generated from one of the Smart Mapping creator methods, such as ...
*
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-Renderer.html#authoringInfo)
*/
authoringInfo?: AuthoringInfoProperties;
} Typescript disallows assigning weak types to objects when there is no overlap in properties between the type declaration and the object's properties. In other words, even though all properties of a weak type are optional, an object must have at least one of them in order to be assigned that type. In the case of the RendererProperties type, this means that no object can be assigned the type RendererProperties unless it has an authoringInfo property. This is a rather undesirable requirement, as there are many use cases for the Renderer type that do not necessitate an authoringInfo property. For example, consider the following code from the official API sample code -- Sandbox link here. var quakesRenderer = {
type: "simple", // autocasts as new SimpleRenderer()
symbol: {
type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
style: "circle",
size: 20,
color: [211, 255, 0, 0],
outline: {
width: 1,
color: "#FF0055",
style: "solid"
}
},
visualVariables: [
{
... // omitted for brevity
}]
};
function createLayer(graphics) {
layer = new FeatureLayer({
source: graphics, // autocast as an array of esri/Graphic
// create an instance of esri/layers/support/Field for each field object
fields: fields, // This is required when creating a layer from Graphics
objectIdField: "ObjectID", // This must be defined when creating a layer from Graphics
renderer: quakesRenderer, // ** autocast attempts to assign type RendererProperties, but cannot
popupTemplate: pTemplate
});
map.add(layer);
return layer;
}
This example does not work in TypeScript. When the FeatureLayer constructor is called in line 23, TypeScript attempts to cast the object passed to it to type FeatureLayerProperties. This, in turn, requires that the value of the renderer property be cast to type RendererProperties. However, this cast fails, as RendererProperties is a weak type and quakesRenderer has no properties that overlap with it. One fairly reasonable, very easy fix would be to add an index signature with type any to the RendererProperties interface to ensure that any properties will be accepted. This is perhaps a bit hacky, but it would work. interface RendererProperties {
/**
* Authoring metadata only included in renderers generated from one of the Smart Mapping creator methods, such as [sizeRendererCreator.createContinuousRenderer()](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-smartMapping-creators-size.html#createContinuousRenderer) or [colorRendererCreator.createContinuousRenderer()](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-smartMapping-creators-color.html#createContinuousRenderer). This includes information from UI elements such as sliders and selected classification methods and themes. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections can be remembered.
*
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-Renderer.html#authoringInfo)
*/
authoringInfo?: AuthoringInfoProperties;
[prop: string]: any;
} Am I missing something, or is this, in fact, an error in the API's type declarations?
... View more
03-05-2019
06:19 PM
|
0
|
0
|
334
|
POST
|
In version 2.4 (Dec. 2017), TypeScript introduced the concept of a weak type. A weak type is any type that is defined by only optional properties. Any type that contains nothing but a set of all-optional properties is considered to be weak. As defined in the type declarations file for the ArcGIS API for JavaScript (node_modules/@types/arcgis-api-js/index.d.ts), the interface RendererProperties defines a weak type, since it specifies only one property and that property is optional. export const Renderer: RendererConstructor;
interface RendererProperties {
/**
* Authoring metadata only included in renderers generated from one of the Smart Mapping creator methods, such as ...
*
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-Renderer.html#authoringInfo)
*/
authoringInfo?: AuthoringInfoProperties;
} Typescript disallows assigning weak types to objects when there is no overlap in properties between the type declaration and the object's properties. In other words, even though all properties of a weak type are optional, an object must have at least one of them in order to be assigned that type. In the case of the RendererProperties type, this means that no object can be assigned the type RendererProperties unless it has an authoringInfo property. This is a rather undesirable requirement, as there are many use cases for the Renderer type that do not necessitate an authoringInfo property. For example, consider the following code from the official API sample code -- Sandbox link here. var quakesRenderer = {
type: "simple", // autocasts as new SimpleRenderer()
symbol: {
type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
style: "circle",
size: 20,
color: [211, 255, 0, 0],
outline: {
width: 1,
color: "#FF0055",
style: "solid"
}
},
visualVariables: [
{
... // omitted for brevity
}]
};
function createLayer(graphics) {
layer = new FeatureLayer({
source: graphics, // autocast as an array of esri/Graphic
// create an instance of esri/layers/support/Field for each field object
fields: fields, // This is required when creating a layer from Graphics
objectIdField: "ObjectID", // This must be defined when creating a layer from Graphics
renderer: quakesRenderer, // ** autocast attempts to assign type RendererProperties, but cannot
popupTemplate: pTemplate
});
map.add(layer);
return layer;
}
This example does not work in TypeScript. When the FeatureLayer constructor is called in line 23, TypeScript attempts to cast the object passed to it to type FeatureLayerProperties. This, in turn, requires that the value of the renderer property be cast to type RendererProperties. However, this cast fails, as RendererProperties is a weak type and quakesRenderer has no properties that overlap with it. One fairly reasonable, very easy fix would be to add an index signature with type any to the RendererProperties interface to ensure that any properties will be accepted. This is perhaps a bit hacky, but it would work. interface RendererProperties {
/**
* Authoring metadata only included in renderers generated from one of the Smart Mapping creator methods, such as [sizeRendererCreator.createContinuousRenderer()](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-smartMapping-creators-size.html#createContinuousRenderer) or [colorRendererCreator.createContinuousRenderer()](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-smartMapping-creators-color.html#createContinuousRenderer). This includes information from UI elements such as sliders and selected classification methods and themes. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections can be remembered.
*
* [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-Renderer.html#authoringInfo)
*/
authoringInfo?: AuthoringInfoProperties;
[prop: string]: any;
} Am I missing something, or is this, in fact, an error in the API's type declarations?
... View more
03-05-2019
06:16 PM
|
1
|
1
|
967
|
Title | Kudos | Posted |
---|---|---|
1 | 03-05-2019 06:16 PM | |
1 | 03-12-2019 10:15 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|