|
POST
|
That's strange, I just did it as you said (same as the Postman example) and it worked: curl --location --request GET 'https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer/findAddressCandidates?token=MY_API_KEY&f=pjson&singleLine=1600 Pennsylvania Ave NW, DC' I got this same response. but it seems that the request doesn't return anything. Can someone help me? What do you mean by this? can you share the curl and screenshot? (blurring the API key)
... View more
05-13-2022
04:01 AM
|
0
|
4
|
4187
|
|
IDEA
|
Thanks @Bud for taking the time to share this idea. Indeed, as you said Dan, ArcGIS for Personal Use and ArcGIS for Student Use are low-cost options for ArcGIS users to get access to software for noncommercial use, but as @Bud said, not all products that can be used for development are included there. Thanks for sharing this idea Bud, I'll share it internally. And just for the record, in case someone reading this idea is not aware, right now, the most suitable bundle for developers to get some tools & services for personal use is to sign-up for a free account under developers.arcgis.com (a.k.a. ArcGIS Platform) which include: A free tier for many of the location services by Esri (and enabling pay as you go you get access to all of them). Access to use and download almost all SDKs, APIs, builders and templates. Access to ArcGIS Online (one user) Disclaimer: with the free account you don't get access to ArcGIS Desktop, AppStudio or ArcGIS Enterprise among others as Bud said (check differences). Thanks, Raul
... View more
03-22-2022
02:49 AM
|
0
|
0
|
1281
|
|
POST
|
I have another question/situation related to this one: We have truncated this feature service, as you can see there is no content on it, but the metadata of the item in the organization is not been updated. My questions are: How do we enforce that item metadata to refresh? Is the account still been charged by the 109MB? Thanks in advance!
... View more
02-03-2021
05:19 AM
|
1
|
0
|
2914
|
|
POST
|
Thanks Matt George ! I just noticed a weird blinking when the timeInfo was not set properly -> check this video (this is Chrome but It does the same on Firefox). I first used this code (fields and timeInfo were wrong). After fixing it is worked as expected ^_^. Thanks! P.S: your code also worked
... View more
10-13-2020
05:03 AM
|
0
|
0
|
6665
|
|
POST
|
Finally you made it!!!, "webSocketUrl" is finally here! ^_^ -> StreamLayer | ArcGIS API for JavaScript 4.17 I have just tested it using your repo and it works , thanks!
... View more
10-09-2020
12:40 AM
|
0
|
2
|
6665
|
|
POST
|
Yes, you're totally right Shay, I have opened an issue in the repo letting them know about this situation, and if they are OK I will try to send a pull request to fix i. BTW, I have just figured out that the problem with the "args" variable was caused by myself... ^_^'', I did a find and replace "arguments" by "args" because I was using the Grunt tasks provided by the Yeoman generator, and when it found the "arguments" variable in the code it prints out this message: Warning: widgets/CustomTinySoap/libs/tinysoap-browser-min.js: arguments is a reserved word in strict mode (499:50) And it doesn't copy the code to the Web AppBuilder app. So I have reverted the changes: Does anyone know how can I avoid that issue?, do I need to remove the "use strict" from somewhere? UPDATE (10th August): I have opened an issue in the yeoman generator repo about this. Conclusions The problem was not with WAB, was with the tinysoap library itself in this case. It is a confusion between the "require" form RequireJS.org with "require" from NodeJS. It runs an if statement "if (typeof require === "undefined")" in order to check if the code is been run in the client/browser or in the server with NodeJS. But in this case because of the RequireJS library is loaded the code thinks that it is running within a NodeJS environment and it tries to load "https", "http", "util", "fs" and "crypto" which are NodeJS core libraries, and of course, it fails because RequireJS doesn't know how to load them. That's the reason of the "undefined Module" error, it's not related a problem loading the tinysoap library itself. So my solution here was just commenting those lines (18, 24, 39, 36 and 42). The second problem was related to accessing the library within the scope of the Widget. I don't know why it was not accessible there, so I just simply added it to the global scope (a.k.a. "window" object) <- please, forgive me about that, xD, I just took the short path. Someone can tell me the right way to do this? Or why this is happening in the first place? Notice: in my code I use "tinysoap" instead of "tinySoap" as Gerard, so in my case the right way to call it is tinysoap.createClient --> UPDATE (7th August):I just checked it again and it works now... so I have removed this. And I think this last thing has nothing to do with the solution, but just in case... as mentioned in my previous message, I used "jimu/loaderplugins/jquery-loader!" to load the library instead of the other ways mentioned in the developers documentation. And I think that's all. I hope that helps. Best regards, Raul
... View more
08-06-2020
05:26 AM
|
1
|
0
|
498
|
|
POST
|
Hi Gerard Martin and Shay Lavi , By recommendation of Gavin Rehkemper I have been trying using "jimu/loaderplugins/jquery-loader!" as explained here, this is the code I've used: define([
'dojo/_base/declare',
'jimu/BaseWidget',
'jimu/loaderplugins/jquery-loader!./widgets/CustomTinySoap/libs/jquery.min.js, ./widgets/CustomTinySoap/libs/tinysoap-browser-min.js'
],
function(declare, BaseWidget, $, tinySoap) {
return declare([BaseWidget], {
baseClass: 'custom-tiny-soap',
postCreate: function() {
this.inherited(arguments);
console.log('CustomTinySoap::postCreate');
var userTxtValue = "rossinyol";
const url = "" // SOAP Service
tinysoap.createClient(url, function(err, client){
client.setSecurity( tinysoap.WSSecurity('','') );
client.localitzaToponim(argsToponim, function(err, result){
console.log('localitzaToponim: ', result['item']);
return callback(result['item']);
}); //END client.localitzaToponim();
});// END tinySoap.createClient();
}
});
}); Then, I noticed the libraries were loaded properly, but the error was still there: // ERROR: Uncaught Error: undefinedModule at tinysoap-browser-min.js? Wab_dv = 2.13: 1 And then I thought.... maybe the issue is not with Web AppBuilder itself but of the library. So I prettified the tinysoap-browser-min.js (because I couldn't find the regular version) and I noticed the problems started at the beginning of the library, while the library is checking if the function "require" exists (line 5): ! function(t, e) {
e = {}
var n = function() {
var j = {};
if (typeof require === "undefined") j.__sr = function() {};
else j.__sr = require;
return j.__r = function(t) {
var e = j[t];
return null === e.sts && e.load.call(), e.mod.exports
}, j.https = {
sts: 1,
mod: {
exports: j.__sr("https")
}
}, j.http = {
sts: 1,
mod: {
exports: j.__sr("http")
}
}, j.util = {
sts: 1,
mod: {
exports: j.__sr("util")
}
}, j.fs = {
sts: 1,
mod: {
exports: j.__sr("fs")
}
}, j.crypto = {
sts: 1,
mod: {
exports: j.__sr("crypto")
}
}, j.a = { I found it's failing on lines 13, 18, 23, 28, ... I guess it is because... the code is prepared to run also on NodeJS? and the condition is just trying to determine if you're running the code on NodeJS but it is not considering that you can have another "require" function, in this case, RequireJS library so when it tries to load the libraries ... RequireJS fails, right? I just tried commenting all those lines, and ... ta-da! it didn't fail .... at that point xDDD. For some reason the "tinysoap" was not initialized under the scope of the widget, so I also did one more change, I added this line before the end of the script: window.tinysoap = n, "object" == typeof exports && "undefined" != typeof module && (module.exports = n) Of course, doing that, I was able to use the library within the widget. Here you can find my modified tinysoap-browser-min.js file. Which is my problem now?, well, first I'm having a CORS problem, to avoid that during development I have used Moesif Orign & CORS Changer chrome extension. But after that I had another issue... --- SHORT BREAK FROM PREVIOUS CODE -- Before keep looking on WAB I decided to check if libraries work the same way even after my changes. Here you can see two vanilla examples using the tinysoap library: Using the library directly from the CDN -> right now it's failing because "argsToponim" is not defined, so that OK Using my modified version of the library -> It's now failing to try to parse the XML, I still haven't figure out why but the variable "args" on line 670 is not defined. And as you can see it seems they don't. --- END SHORT BREAK FROM PREVIOUS CODE -- And for now... this is everything I can say xD, I hope my tests can help us find a solution to the problem. Best regards, Raul
... View more
08-06-2020
01:53 AM
|
0
|
1
|
2546
|
|
POST
|
Thanks Xander!I didn't know it also happens in ArcGIS Pro. But the good thing is... that there is a way to solve it . Best regards!, Raul
... View more
05-23-2020
08:49 AM
|
1
|
0
|
1800
|
|
POST
|
I have noticed a strange behaviour, not 100% sure if it is a "bug" so decided to ask here first. Using this layer I'm trying to set transparency based on an attribute value. I have chosen to define the style based on an String value called "Tipus d'establiments" and using "Unique symbols": But then, I can not set the transparency based on another attribute: I guess it is because I don't have any numerical attribute on that layer, but I was expecting to be able to use an Arcade expression to define that numerical value, isn't that possible?. I have tried a different layer using in this case a different field (but also a String field) And this time I have noticed that I can set the transparency based on another value: When I have clicked that option this modal shows up: In this case, this layer has "Número de componentes" which is an Integer value, and I guess that's the condition the web interface is checking in order to show the "Set from Attribute Value" or not. Maybe I'm wrong, but if that's the case... should we always display the "Set from Attribute Value" considering that it is always possible to create an Arcade Expression that return a numerical value? In our case we what to check the timetable of a local business and use transparency to show which of those businesses are open at the moment to open the app. I guess we can do a quick fix adding a numerical value (even if we don't use it), but I just wanted to be sure about what's going on. Best regards, Raul P.S: cc: Kelly Gerrow, Xander Bakker
... View more
05-21-2020
12:27 AM
|
0
|
3
|
1888
|
|
POST
|
Hi Zeno Team, you can do that doing something like this (for a Point Layer Type): const YOUR_TOKEN = "<place your token here>";
const SERVICE_NAME = "<your service name>"; // Probably similar to your item name
const HOST = "<the subdomain of your service>"; // Something like: services7
const INSTANCE = "<your instance id>"; // Something like: d9R4ThD32qsG1Wu4
const LAYER_NAME = "<your layer name>";
const layerDefinition = {
"layers": [
{
"currentVersion": 10.51,
"id": 0,
"name": LAYER_NAME,
"type": "Feature Layer",
"displayField": "",
"description": "",
"copyrightText": "",
"defaultVisibility": true,
"editingInfo": {
"lastEditDate": null
},
"relationships": [],
"isDataVersioned": false,
"supportsAppend": true,
"supportsCalculate": true,
"supportsTruncate": true,
"supportsAttachmentsByUploadId": true,
"supportsAttachmentsResizing": true,
"supportsRollbackOnFailureParameter": true,
"supportsStatistics": true,
"supportsAdvancedQueries": true,
"supportsValidateSql": true,
"supportsCoordinatesQuantization": true,
"supportsApplyEditsWithGlobalIds": false,
"advancedQueryCapabilities": {
"supportsPagination": true,
"supportsPaginationOnAggregatedQueries": true,
"supportsQueryRelatedPagination": true,
"supportsQueryWithDistance": true,
"supportsReturningQueryExtent": true,
"supportsStatistics": true,
"supportsOrderBy": true,
"supportsDistinct": true,
"supportsQueryWithResultType": true,
"supportsSqlExpression": true,
"supportsAdvancedQueryRelated": true,
"supportsCountDistinct": true,
"supportsLod": true,
"supportsReturningGeometryCentroid": false,
"supportsQueryWithDatumTransformation": true,
"supportsHavingClause": true,
"supportsOutFieldSQLExpression": true
},
"useStandardizedQueries": true,
"geometryType": "esriGeometryPoint",
"minScale": 0,
"maxScale": 0,
"extent": {
"xmin": -0.000004988163709640503,
"ymin": 2504688.542852979,
"xmax": 2504688.542843003,
"ymax": 5009377.085700966,
"spatialReference": {
"wkid": 102100
}
},
"allowGeometryUpdates": true,
"hasAttachments": false,
"htmlPopupType": "esriServerHTMLPopupTypeNone",
"hasM": false,
"hasZ": false,
"objectIdField": "OBJECTID",
"uniqueIdField": {
"name": "OBJECTID",
"isSystemMaintained": true
},
"globalIdField": "",
"typeIdField": "",
"fields": [
{
"name": "OBJECTID",
"type": "esriFieldTypeOID",
"alias": "OBJECTID",
"sqlType": "sqlTypeOther",
"nullable": false,
"editable": false,
"domain": null,
"defaultValue": null
},
{
"name": "Name",
"type": "esriFieldTypeString",
"actualType": "nvarchar",
"alias": "Name",
"sqlType": "sqlTypeNVarchar",
"length": 256,
"nullable": true,
"editable": true,
"visible": true,
"domain": null,
"defaultValue": null
}
],
"indexes": [],
"types": [],
"supportedQueryFormats": "JSON, geoJSON",
"hasStaticData": false,
"maxRecordCount": 2000,
"standardMaxRecordCount": 32000,
"tileMaxRecordCount": 8000,
"maxRecordCountFactor": 1,
"capabilities": "Query,Editing,Create,Update,Delete,Sync",
"syncEnabled": true,
"adminLayerInfo": {
"geometryField": {
"name": "Shape",
"srid": 102100
}
}
}
],
"tables": []
}
const settings = {
"url": `https://${HOST}.arcgis.com/${INSTANCE}/arcgis/rest/admin/services/${SERVICE_NAME}/FeatureServer/addToDefinition`,
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/x-www-form-urlencoded"
},
"data": {
"addToDefinition": JSON.stringify(layerDefinition),
"f": "json",
"token": YOUR_TOKEN
}
};
$.ajax(settings).done(function (response) {
console.log(response);
}); In November I wrote some documentation about how to work with hosted feature services through the REST API. Best regards, Raul
... View more
01-28-2020
09:16 PM
|
5
|
4
|
9345
|
|
POST
|
I'm still not sure how to answer my previous questions, but I have been testing the requests and I made it work without using the jobUrl, adding the JSON to the static resources, etc. I have created a Postman collection with all several requests I used in case you want to take a look at them: There are three requests to create a brand new feature service (Awards) and populate it with data (requests: 4, 5 and 6): This screenshot shows the Beaches awarded in 1955 by three different organizations Also, three requests to create a brand new feature service (Beaches) and populate it with data (requests: 1, 2 and 3): These screenshots show the names for each Beach awarded in 1955 on the Beaches table Two requests to create the feature layer view (Awarded_beaches) with a join (Beaches.BeachId = Awards.BeachId) (requests: 7 and 8): Here we can see the JOIN in action, and how we can see in the same table all the attributes from both tables. So I'll check this question as solved . Thanks, Raul
... View more
11-02-2019
12:22 PM
|
0
|
0
|
3436
|
|
POST
|
Thanks Earl, I'll repeat the process again as soon as possible, but I'm pretty sure when I did it last time (logging the whole time) I didn't see any join task request (maybe I missed it). I think for what you have to do you need to run the join job first and then create the view from the result (unless for you workflow you need to create the view first and then the join?) As you can see, using the "Join Features" tool within the Web Map Viewer: You can do the execute the join task and create the layer view in one step <- this was the workflow I followed, and I couldn't find the join task request anywhere. Thanks one more time. Raul P.S: sorry for taking 3 days to reply, I'm pretty busy this weeks because our user conference is on 29th & 30th October ^_^''
... View more
10-17-2019
02:03 PM
|
0
|
0
|
3436
|
|
POST
|
Hi Atma Mani & Rohit Singh, I have noticed you were the ones writing the documentation about the create_view method within the Python API. Maybe you know the answer to my questions or know who can I talk to . Thanks in advance!, Raul
... View more
10-07-2019
02:28 AM
|
0
|
0
|
3436
|
|
BLOG
|
Thanks Earl Medina for this awesome post . I'm trying to accomplish what you have explained here but directly through the REST API, I posted a question last Thursday (Join Features and save result as Layer view through the REST API) but I didn't get any response yet ;(. Could you help me with it? Or would it be better to talk to someone from Shannon Kalisky's team? Best regards!, Raul
... View more
10-07-2019
02:15 AM
|
0
|
0
|
9478
|
|
POST
|
Context info: I'm just trying to write some documentation about how to get the most out of ArcGIS Online Hosted Feature Servicesand I have some questions I'd need a little help with. I following this workflow to join two layers and save them as a layer view. Trying to do some reverse engineering using Postman and I have found seven POST requests are made during this process (Postman collection with those requests). I have explored these requests and I have some questions: I have seen the first two requests are createService and addToDefinition, specifying "isView: true" and updating the service definition (view SD) to specify information about the query parameters themselves. Is this enough to have a layer view fully functional?? The third request updates the item "properties" field with a JSON that includes a "jobUrl" set to: "https://analysis7.arcgis.com/arcgis/rest/services/tasks/GPServer/JoinFeatures/jobs/ViewJob_1570094204566", When was this job created?, I have filtered my browser network tab by "/JoinFeatures/submitJob" and I haven't found any request. Is this necessary? I make sense ... but I'm confused because I can't find when it is sent. Fourth request is adding a JSON to the item's static resources with the name of the tool and parameters needed to run that tool (in this case: Join features) Is this necessary for something? Request 5, 6 and 7 are just update item metadata, thumbnail, tags, etc I assume all these are optional too Any help is more than welcome . Thanks in advance, Raul
... View more
10-03-2019
05:47 AM
|
1
|
4
|
3790
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 08-25-2023 03:27 AM | |
| 3 | 07-11-2025 08:28 AM | |
| 1 | 06-09-2025 08:42 AM | |
| 1 | 02-18-2025 03:33 AM | |
| 2 | 02-18-2025 01:14 AM |
| Online Status |
Offline
|
| Date Last Visited |
12-15-2025
04:11 AM
|