POST
|
Wouldn't it be nice if esri would mention in the API document that for graphic, geometry, etc. the spatial reference needs to be the same?
... View more
11-25-2019
02:39 PM
|
1
|
0
|
1623
|
POST
|
Thanks Robert and Ken! The API for Map lists 17, ESRI phrase "well known IDs" is, at best, unfortunate; they could have easily pointed to the map API. I would like to mark both answers as "correct"; I chose Robert's because he was first with an explicit answer. I did mark Ken's "Helpful". Now to make the rendered widget useful with features like resizable and draggable and sortable (jQuery UI). Good health! Blair
... View more
06-06-2018
10:08 AM
|
0
|
2
|
5245
|
POST
|
I want to construct a BasemapGallery from a collection of Basemap. In the API reference does not provide a link to "well known Ids"; my internet search for "basemap well known id" comes up empty. So what are these "well known" ids? From the ESRI API Reference for Basemap // or create the basemap from a well known ID Basemap.fromId("topo"); Good health! Blair
... View more
06-06-2018
08:18 AM
|
0
|
5
|
6252
|
POST
|
ArcGIS API 4.6 What is the "proper" way to change opacity for the basemap? possibly: var map = new Map({ basemap:"topo"}); map.allLayers.items[0].opacity=0.25; or perhaps: var map = new Map(); map.add( new TileLayer( id:"topo", url="https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer" }); map.findLayerById("topo").opacity=0.25; Appendix question: why use basemap vs TileLayer ? Thanks and good health! Blair
... View more
06-05-2018
01:03 PM
|
1
|
2
|
2444
|
POST
|
Thanks Robert, Yes, I want the complete rendered legend. Good health! Blair
... View more
05-23-2018
08:05 AM
|
0
|
1
|
903
|
POST
|
Thanks Robert, I inserted your (modified) code after legend = new esriLegend(... watchUtils.whenOnce(legend, "container", function(evt){
console.log(legend.container.innerHTML);
}); innerHTML is "No legend" Then after setTimeout for 250ms, the legend is complete. Good health!
Blair
... View more
05-23-2018
07:49 AM
|
0
|
1
|
903
|
POST
|
ArcGIS API 4.6; I want to create user interface elements within a legend. There seems to be no ESRI methods for this, so I am trying to capture the document elements created by the legend widget. I want a static legend. First I create a number of FeatureLayer with empty source features array. I add these to a map and create the legend. Next, I want to copy the innerHTML of the document element containing legend and finally destroy the legend and remove all FeatureLayer. From the copy I can construct my version of legend. My problem is event timing. Is there a deterministic method to signal complete construction of new esriLegend in the DOM? I have tried watchUtil.when(legend,"container") property, but I cant find a method to use with dojo/aspect.after. What works is to invoke esriLegend then use setTimeout(), set for a few hundred miliseconds, at which point I can copy the completed DOM element and destroy the legend. Please suggest a better way! Thanks, Blair // makeLegend.js May 22, 2018 abj3 if (!window.VaFWIS) { window.VaFWIS = {}; } if (!VaFWIS.lib) { VaFWIS.lib = {}; } require([ "esri/layers/FeatureLayer", "esri/widgets/Legend" ], function (FeatureLayer, esriLegend) { VaFWIS.lib.makeLegend = function () { // esri/widgets/legend creates a dynamic symbol legend connected to map featureLayers // VaFWIS.lib.makeLegend - make an esriLegend and copy DOM element as a static legend // 1) map.add featureLayers created from VaFWIS.layerDef having layerInfo // 2) define legend info // 3) invoke esri/widgets/legend which dynamically inserts HTML into "theLegend" // 4) save "theLegendContainer" innerHTML // 5) destroy legend // 6) map.remove featureLayers // 7) restore saved "theLegendContainer" innerHTML // 😎 (future) add legend item specific ui controls // a) re-order layers by dragging // b) change opacity var legendLayerInfos = []; var keys = Object.keys(VaFWIS.layerDef); for (var k = 0; k < keys.length; k++) { var layerDef = VaFWIS.layerDef[keys ]; if (layerDef.layerInfo) { if (VaFWIS.debug == true) { console.log("makeLegend for " + layerDef.id); } var featureLayer = FeatureLayer( { "fields": layerDef.layerInfo.fields , "geometryType": layerDef.layerInfo.geometryType , "id": "theLegend_" + layerDef.id , "objectIdField": layerDef.layerInfo.objectIdField , "popupTemplate": layerDef.layerInfo.popupTemplate , "renderer": layerDef.layerInfo.renderer , "spatialReference": layerDef.layerInfo.spatialReference , "source": [] , "visible": true } ); VaFWIS.map.add(featureLayer); legendLayerInfos.push( { "layer": featureLayer , title: layerDef.title }); } } // construct legend; after scheduleRenderer then save HTML and destroy legend legend = new esriLegend( { view: VaFWIS.mapView, container: "theLegend", layerInfos: legendLayerInfos } ); setTimeout(function (legend) { var containerContent = $("#theLegendContainer").html(); legend.destroy(); VaFWIS.map.removeMany(VaFWIS.map.layers.filter( function (lyr) { return lyr.id.indexOf("theLegend_") == 0; } )); $("#theLegendContainer").html(containerContent); $("#theLegendContainer").css("visibility", "visible"); }.bind(null, legend), 250); } });
... View more
05-22-2018
01:07 PM
|
0
|
5
|
1197
|
POST
|
I have a feature layer depicting many locations of wildlife collection efforts. I have a table of species codes observed for each effort. I have a table of characteristic codes assigned to each species code. Each effort can identify many different critters. Each critter has been assigned several codes from a list of characteristics. Using https://js.arcgis.com/3.20/ . If ArcGIS used standard SQL, I would be able to use Join in my Where clause to query and select effort features based on species code and/or characteristic codes; but in reading the documentation for QueryTask Where, it seems JOIN is not supported. Have I misunderstood? What is the best practice method, using ArcGIS JavaScript API, to query using SQL Join to a feature attribute?
... View more
06-19-2017
07:25 AM
|
0
|
1
|
963
|
POST
|
Thanks again, Robert. Based on your response I added test code to my loop: var c = new Circle( featuresArray.geometry.getExtent().getCenter(),{"radius":250,"numberOfPoints":8}); console.log( "c.isClockwise(c.rings[0])= " + c.isClockwise(c.rings[0]) ); and sure enough, all the circle rings[0] show false; New Circle makes a hole. I did not see this behavior in the documentation for New Circle. Good health! Blair
... View more
08-17-2016
08:22 PM
|
0
|
1
|
947
|
POST
|
Thanks Robert, There is no mention in the documentation for a parameter that controls ring direction. Just another API quirk that takes hours of time to figure out. At least by adding "simplify" my code works the way I want. Seems odd that New Circle would not always create a "forward" ring.
... View more
08-12-2016
10:19 AM
|
0
|
1
|
947
|
POST
|
Is it customary to require GeometryService.simplify() when using New Circle ? Why would geometry of New Circle require "correcting" ? I have an array of features returned from executeQuery. In a loop I test an attribute and then either push the original geometry into an array or push a New Circle() into that array. When done I invoke GeometryService.union(array) and add that to my graphics layer. The result looks odd as though some circles are cut out of some original polygons or original polygons are cut out of circles. With desperation, I tried geometryArray.push( GeometryService.simplify( New Circle(features.geometry.getExtent().getCenter,{"radius":150,"numberOfPoints":8}) )) and then GeometryService.union returned results I had originally expected.
... View more
08-11-2016
11:51 AM
|
0
|
5
|
2256
|
POST
|
esri.config.defaults.io.timeout I have many sources with most completing under 20 seconds. But one or two can take close to 150 seconds. When I change esri.config.defaults.io.timeout to 150000 before a long task and then set esri.config.defaults.io.timeout to 20000 for a short task, the long task throws timeout error at 20 seconds. Is there a method to set io timeout for indiviual tasks? Thanks, Dinosaur Blair
... View more
07-15-2016
12:47 PM
|
0
|
0
|
1242
|
POST
|
I'm using V3.13 geometryEngine to buffer from activateDrawTool on a esri-web-mercator image. Because my project is low precision, I want to reduce the number of vertices in the returned polygon. I have employed geometryEngine.generalize on the result. Question 1 - are there properties of some object I can set to have geometryEngine.geodesicBuffer return a generalized geometry? Question 2 - concerning maxDeviation - if I use 10.0 does this mean a resulting vertice will be within + or - 10 esri-web-mercator units from where it should be?
... View more
09-21-2015
11:43 AM
|
0
|
0
|
2747
|
POST
|
I'm still loosing sleep over my ArcGIS JavaScript application and why it does not work with IE 10 / 11. I have CORS enable my server, which seems to work with everything not ArcGIS and works with for ArcGIS showing feature layers on a map, but not for queryTask directed at the same feature layer. I have the JavaScript directive, though not supposed to be needed: // where getTokenURL="https://some.domain.gov/arcgis/tokens" esri.config.defaults.io.corsEnabledServers.push(getTokenURL.split("/")[3]); Everything works properly in Firefox, Chrome, and Opera. But in IE10 my $.getJSON CORS request works well, the map loads and displays images as expected. When I execute a queryTask the nework trafic monitor shows a request being made through PROXY instead of a CORS request. Firefox, Chrome network monitors show CORS requests for the same event. My authorization token is valid for the Client IP address, not valid for the PROXY IP; things go wrong. My question is, have I missed something I need to do or does ArcGIS 10.2 queryTask not support IE 10 / 11 CORS ? Good health! Blair
... View more
04-24-2015
11:00 AM
|
0
|
0
|
3300
|
POST
|
More trial and error: Seems the CORS component is NOT the problem. I can use jQuery to $.getJSON using either plain JSON, or by including "?callback=?" in the URL, JSONP. It seems that IE 10 and ArcGIS CORS works about the same as ArcGIS proxy which, for me, is poorly. I construct layers dynamically and then loop through each layer generating a queryTask for each. The result is supposed to build dynamically on the browser page ( which it does in every browser except IE ). Using IE, when I create and add new feature layers before the earlier layer has finished loading, then the map does not display properly. This process works correctly in other browsers. When I delay between each additional new feature layer, then IE10 displays properly. My "click map" function is supposed to report feature layer values within a buffer of the click point. This is the loop for each feature layer that creates a new queryTask and builds the web page dynamically. This works well in all browsers except IE. When I insert a javascript alert function in the loop for each feature layer, then the report completes correctly in IE.; in my humble opinion, there seems to be something amiss in the way ArcGIS JavaScript API handles data requests when run from IE. CORS support for IE10 in ArcGIS is not a problem.
... View more
04-16-2015
01:58 PM
|
0
|
0
|
397
|
Title | Kudos | Posted |
---|---|---|
1 | 06-05-2018 01:03 PM | |
1 | 11-25-2019 02:39 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|