POST
|
In the 3.20 API I think you would access the map after the promise from arcgisUtils.createMap resolves, like this: JS Bin - Collaborative JavaScript Debugging That example shows how you could access the layer as well, assuming you only have one layer. If you want to edit the popup for that layer, you should play around with the infoTemplate property on the layer. For more on how to add a graph instead of the attribute table, take a look here: Format info window content | Guide | ArcGIS API for JavaScript 3.20 Also, here: Customize popup | Guide | ArcGIS API for JavaScript 3.20
... View more
03-21-2017
01:59 PM
|
0
|
3
|
418
|
POST
|
As far as I know, there isn't any way to generate a polygon or extent from a point and an angle.
... View more
03-21-2017
05:55 AM
|
0
|
1
|
549
|
POST
|
There's no reason you can't do this in the client. I would check out esri/graphicsUtils | API Reference | ArcGIS API for JavaScript 3.20 The graphicsExtent method will take an array of Graphics (features) and return an extent. What you need to do is find out where your graphics are getting stored in the client.
... View more
03-20-2017
01:35 PM
|
1
|
3
|
549
|
POST
|
It looks like setting graphic.visible works in 3D but not in 2D (4.3). For 2D, you should try deleting the graphic manually from the featuresView.graphics collection. You can do this with featuresView.graphics.remove(graphic) or featuresView.graphics.removeMany([graphic1, graphic2,..]). If you plan on re-adding these later, you'll have to store them somewhere and re-add them to the layerView graphics collection later (use collection.add and .addMany). With this kind of functionality you're getting into GraphicsLayer-type stuff, so you might want to think about using a GraphicsLayer instead, as you initially mentioned. I would say the main advantages of a FeatureLayer is that it has some built-in querying and has some nice methods to help you persist the layer on a back-end. If you're not using these, then a GraphicsLayer may be better.
... View more
03-17-2017
01:08 PM
|
2
|
1
|
1085
|
POST
|
You're right, it looks like where is not supported for layerView.queryFeatures. If you want to query for attributes, one option would be something like: function queryByAttr(lv: layerView, key: string, value: any):Array<Graphic>{ return layerView.featuresView.graphics.filter(graphic => graphic.attributes && graphic.attributes[key] === value).toArray(); } There may be an easier way to do this, but that should work. Use layerView.loadedGraphics (instead of featuresView.graphcis) for 3D.
... View more
03-17-2017
07:41 AM
|
2
|
0
|
1085
|
POST
|
The queryFeatures method might be what you're looking for: FeatureLayer | API Reference | ArcGIS API for JavaScript 4.3 For client-side queries, you would call this on the layerView rather than on the layer itself. To get ahold of the layerView, you can do something like: view.whenLayerView(layer).then(layerView => ...). You could also search the view.layerViews collection for the item whose .layer property matches the layer you're looking for. In general, you can think of the layerView as the visual representation of the layer in question. Each layer, once added to the map, has a corresponding layerView on the view. Last time I checked, layerView.queryFeatures is fairly limited in what kinds of spatial queries it supports. I think it only supports extent geometries and the "intersects" spatial relationship. You should be able to query by attributes though. If you prefer to write your own spatial queries, you have some options. To access a list of all graphics loaded inside a layerView on the client, you can look in: layerView.featuresView.graphics (2D) or layerView.loadedGraphics (3D). These will be collections (Collection | API Reference | ArcGIS API for JavaScript 4.3) which are basically evented arrays (you can convert them to arrays with collection.toArray()). To do the actual spatial queries, the geometryEngine has a lot of helpful methods: geometryEngine | API Reference | ArcGIS API for JavaScript 4.3. As far as GraphicsLayer vs. FeatureLayer, I would consider using a GraphicsLayer if you want your layer to have features with different geometries and you're not concerned about persisting the layer on a back-end.
... View more
03-17-2017
06:23 AM
|
2
|
2
|
1085
|
POST
|
It should work if you host the image locally rather than getting it from another domain. Another possible workaround would be to encode the image in base64 and use a dataURI instead of a URL. Using this, your url parameter would look something like: "data:image/svg+xml;base64,<svg xml string in base64 encoding>". For a jpeg, it would look like: "data:image/jpeg;base64,<jpeg binary encoded in base64>". Note: due to another issue (possibly another bug) you can't have uft8 encoded svgs on 3D maps. You can encode strings in the browser with btoa or check google, I'm sure there's plenty of websites that will allow you to upload an image and give you back a base64 string.
... View more
03-15-2017
02:04 PM
|
0
|
2
|
868
|
POST
|
I don't see any direct mention of WFS in the JS API issues, so all I know is "coming soon."
... View more
03-15-2017
06:48 AM
|
0
|
0
|
631
|
POST
|
This appears to be a bug in the JS API. Glancing at the API issues, this has been reported. I think the culprit is esriRequest, which is being used to fetch the image data.
... View more
03-15-2017
06:45 AM
|
2
|
0
|
868
|
POST
|
I don't know the best way to do this in 3.XX, however the 4.XX API has a a symbolPreview module (esri/symbols/support/symbolPreview) with a renderPreviewHTML function, for example: symbolPreview.renderPreviewHTML(<symbol>,{ node: <HTMLElement>, //svg will be a child of this node opacity: 1, size: 10 }); This will resolve to an HTMLElement containing the SVG, so you can add it manually if you prefer instead of providing a node.
... View more
03-15-2017
06:42 AM
|
2
|
0
|
2601
|
POST
|
According to the functionality matrix, WMS and WFS are "coming soon." WMS looks like it's slotted for 4.4, the next 4.XX release, which should land in a couple months. I would treat that as an estimate, though.
... View more
03-15-2017
06:36 AM
|
1
|
2
|
631
|
POST
|
My advice would be to use an HTML list, like this: let htmlString = Quarter.reduce((accum, current) => accum += `<li>${current}</li>`, "<ul>"); htmlString += "</ul>" this.Quart.innerHTML = 'RESULTS: '+htmlString; For older versions of JS you could do: var htmlString = Quarter.reduce(function(accum, current){ accum += "<li>"+current+"</li>"}, "<ul>"); htmlString += "</ul>"; You can style the list separately to your liking.
... View more
03-14-2017
02:05 PM
|
1
|
1
|
719
|
POST
|
Are you working 2D or 3D? HitTest has some limitations in 3D and will not return graphics that are draped on the surface of the earth. For this situation I've found that a spatial query, like Kelly mentioned, is your best bet. For 2D, I think the best option would be to perform a normal hitTest and then filter the results down to only graphics from layer(s) you're interested in. Each returned graphic has a .layer property which you can compare to the layer(s) you're interested in. I'm surprised to hear that hitTest is giving you performance issues, my understanding is that hitTest doesn't do a spatial query, rather it just checks intersection between the user's click (a point on the screen) and the graphics in the view. So it should be fast. If you're running into speed issues you may have identified a bug. Additionally, you can perform a hitTest on a layerView for the specific layer you're interested in only. Here's a JSbin demonstrating this: JS Bin - Collaborative JavaScript Debugging Note: that works for 2D layerViews only and is not mentioned in the documentation.
... View more
03-14-2017
01:23 PM
|
1
|
1
|
1411
|
POST
|
Are you using 3.XX or 4.XX? Assuming 3.XX: use this method: esri/geometry/webMercatorUtils | API Reference | ArcGIS API for JavaScript 3.20 The function signature is: webMercatorUtils.xyToLngLat(x: number, y: number) -> [longitude: number, latitude: number] So it takes an x and y (in meters) and returns an array with 2 elements, the first being the longitude and the second being the latitude.
... View more
03-10-2017
07:41 AM
|
2
|
2
|
1264
|
Title | Kudos | Posted |
---|---|---|
1 | 05-03-2017 08:23 AM | |
1 | 11-02-2017 08:36 AM | |
1 | 11-02-2017 09:23 AM | |
1 | 09-20-2017 02:07 PM | |
1 | 10-06-2017 05:54 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|