|
POST
|
So I'm curious to see if anyone has tested to see how Portal performs as the number of items grow really large. A million anyone, 10 million? As I understand it (correct me if I'm wrong), Portal is backed by a Postgres database for storing item metadata and file items as BLOB's. So it seems to me that Portal should be able to hold a lot of items. Is anyone using Portal as a document management systems of sorts, i.e. storing non-spatial documents related to map features in Portal, that are tagged using a UID of whichever feature they relate to? I could envision a number of useful scenarios.
... View more
08-14-2019
08:08 AM
|
1
|
4
|
1488
|
|
POST
|
Re: 5 and 9, I thought the options were save in folder and share folder with server, or save in Portal (copy all data over). I was trying to do the latter, so there would be no folder name for fields 5 and 9. Or did I completely misunderstood the workflow here? As for layout template, great! I'll try that. I just went with the sample I found on some troubleshooting page. Let's see if this helps. Stay tuned.
... View more
08-13-2019
03:24 PM
|
0
|
8
|
8956
|
|
POST
|
I have a need for a custom map layout when printing from JSAPI web map. But I haven't been successful in publishing a custom template in ArcGIS Pro that works when called using the Javascript API (JSAPI). Using the Print widget with the regular PrintingTools, as shown in this ESRI sample, works fine: var print = new Print({
view: view,
// specify your own print service
printServiceUrl:"https://myserver.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task",
container: document.createElement("div")
}); The widget open the window on the left and gives me all the default layout printing options. I would like to create a custom layout. Next, I've followed the instructions here and here, to create a *.pagx layout file in ArcGIS Pro (would be MXD in ArcMap) and share (publish) through Portal. The instructions read: ...To create and share the web tool with ArcGIS Enterprise, the folder containing your layout templates must be accessible to ArcGIS Server. If the folder is accessible to the server, you can register it with the server; otherwise, copy the folder's contents to the server from ArcGIS Pro when you share the web tool. So in steps 5 and 9, ... 5. For the Layout Templates Folder parameter, click the browse button and browse to the folder where your layouts are stored. ... 9. Choose the same Layout Templates Folder that you specified when running the Export Web Maptool in step 5 ...I've left the field blank, and then checked "Copy all data" (Step 12) to copy the template to the server during Sharing. There are no errors during the sharing process. I get this and then ... ...see the item in Portal. When I reference the REST URL for the new print service in JSAPI... var print = new Print({
view: view,
// specify your own print service
printServiceUrl:"https://myserver.com/arcgis/rest/services/Custom_GP_Services/New_Custom_print_test/GPServer/Export%20Web%20Map",
container: document.createElement("div")
}); I get this jocular bit of messaging: Anyone seen this before? There are no JS errors in the console. So I have little to go on. Troubleshooting at the print service REST page, as shown here, creates PDF output but it's not based on my custom template. Output:
... View more
08-13-2019
03:03 PM
|
0
|
10
|
10957
|
|
POST
|
Is it a matter of selecting 'Asynchronous ' rather than 'Synchronous' during publishing (sharing)? I'm not expert and am having issues with custom print templates right now, so I've come across a number of references to the Synch/Asynch issue.
... View more
08-13-2019
10:47 AM
|
0
|
0
|
661
|
|
POST
|
Nice!!! I simply forgot to create mew div's for each table cell. Added some padding, and this will be a great start. Thanks, Robert! Very helpful!
... View more
08-09-2019
02:20 PM
|
0
|
0
|
3766
|
|
POST
|
The great thing about Web AppBuilder to me is that you get this general layout for your app out of the box. Whether you like the available themes or not, at least you have something resembling a frame and toolbar to house your map. But that's the only thing I like about WAB, and that's why I keep coming back to working with the API. What I'm missing there is an easy way to build something like a toolbar. View UI is clean and simple enough. But with top-right, bottom-right, top-left, and bottom-left at my disposal, I'm left with few options. Now, I'm not trying to clutter up my apps. I'm a big champion of targeted or focused maps rather than those mother-of-all-web-app type. I've looked at Bootstrap or Calcite-Bootstrap, and they look great. But for what I'm right now, that's more than I need. I tried a few things with the DOM, and can't seem to get them to work. For example, why doesn't this work...? const toolbarTable = document.createElement("table");
toolbarTable.style.opacity = "1";
toolbarTable.style.width = "200px";
tollbarTable.style.backgroundColor = "#ffffff";
view.ui.add(toolbar,{
position: "top-left"
});
const row = table.insertRow(0);
const cell1 = row.insertCell(0);
const cell2 = row.insertCell(1);
const cell3 = row.insertCell(2);
//Note: I'm not planning to add three Home buttons
// just used this for testing widget behavior
const homeBtn1 = new Home({
view : view,
container: cell1
});
const homeBtn2 = new Home({
view : view,
container: cell2
});
const homeBtn3 = new Home({
view : view,
container: cell3
}); What this does against my expectations create a table with three rows, each with one cell, i.e. the three widgets are stacked one upon the other. How, if I try just putting some text in the cells - either using .innerHTML or as below, that works fine. cell1.append("Cell 1");
cell2.append("Cell 2");
cell3.append("Cell 3"); Any idea how to make this work, or other suggestions for creating a horizontal strip or toolbar to hold a number of widgets?
... View more
08-09-2019
12:47 PM
|
0
|
2
|
4233
|
|
POST
|
Yes, same here... I kept trying to figure out the displayField parameter. The above worked great except that I found no use for the $'s. If you have features with a Name and Number attribute, this worked: suggestionTemplate: "Name: {NAME}, Number: {NUMBER}",
... View more
08-08-2019
03:40 PM
|
0
|
0
|
2407
|
|
POST
|
As with so many other instances, not finding any info on how to do it, I abandoned this a while back. But I'm sure I will have to look at it again some day and will remember this post.
... View more
07-03-2019
03:00 PM
|
0
|
0
|
10439
|
|
POST
|
Cool - now I just need to get back to where I was stu+n months ago. Thanks for recording this though. Great to see someone in GIS is keeping up with what's happening in the numpy world.
... View more
07-03-2019
02:58 PM
|
0
|
0
|
3909
|
|
POST
|
Sorry about the late reply. I was really just interested in any GIS specific recommendations or research around UX. I can poll my web map users to see what they like but if I could suggest things that others (or surveys) have found successful, that would be even better. It's the questions I don't know to ask that i'm always interested in seeing answered.
... View more
07-03-2019
02:57 PM
|
0
|
0
|
2954
|
|
POST
|
Klara, this may be just slightly off topic, or rather a larger topic, but is there any GIS specific UX research you're aware of, ESRI produced or other, and that could you share or refer me to? Thanks. PS: Full disclosure, I haven't search here or elsewhere for this kind of information - but stumbled upon your post.
... View more
05-10-2019
07:56 AM
|
0
|
2
|
2954
|
|
POST
|
Thanks, Rene. That's great. Somehow, I didn't realize that I could use the view.ui.add() syntax to integrate a regular HTML dom element into my view. Learning one post at a time here.
... View more
04-22-2019
01:37 PM
|
0
|
0
|
2905
|
|
POST
|
I'm looking for the simplest way to add a button to my view UI when developing with the JS API. By simple I mean really just a UI elements that I can hookup to any necessary callback. For example, I might want to include the search widget to search for a record to select/highlight in the map, and only when the extra simple button is clicked, do I get a popup or a buffer for my feature. I'm surprised there isn't something like a "Simple Button" widget. Or have I missed it? I see an Action Button for use inside a Popup, which I think will be helpful in another context. But more than I need. Currently, I'm having to follow the advice here to do: <div id="mapDiv">
<div id="button">
<button data-dojo-type="dijit/form/Button" id='simpBtn'>My Simple Button</button>
</div>
</div> But the result doesn't blend right in with the style of my other UI elements. This approach here didn't seem to work for me. My button just gets covered up by map despite the z-index of 100. I've been taking my time before getting into the custom widgets using Typescript. Has the time come to take that approach.
... View more
04-22-2019
11:40 AM
|
0
|
2
|
3032
|
|
POST
|
I'm continuing my quest to pick up some Typescript and have started to 'translate' some JS examples in the ESRI documentation to Typescript. Oftentimes, that's not really much work. But I'm struggling with the following buffer example that came from here: var bufferLayer = new GraphicsLayer();
var pointLayer = new GraphicsLayer();
map.addMany([bufferLayer, pointLayer]);
// [...]
var polySym = {
type: "simple-fill", // autocasts as new SimpleFillSymbol()
color: [140, 140, 222, 0.5],
outline: {
color: [0, 0, 0, 0.5],
width: 2
}
};
// [...]
function createBuffer(event, view) {
// [...]
event.stopPropagation();
// convert screen coordinates to map coordinates
var point = view.toMap({
x: event.x,
y: event.y
});
if (point) {
bufferPoint(point);
}
}
// [...]
function bufferPoint(point) {
// [...]
clearGraphics();
// removes z values from the point when taken from a SceneView.
// GeometryEngine does not support 3D geometries.
point.hasZ = false;
point.z = undefined;
pointLayer.add(
new Graphic({
geometry: point,
symbol: pointSym
})
);
// [...]
var buffer = geometryEngine.geodesicBuffer(point, 560, "kilometers");
bufferLayer.add(
new Graphic({
geometry: buffer,
symbol: polySym
})
);
}
// [...]
function clearGraphics() {
pointLayer.removeAll();
bufferLayer.removeAll();
} My attempt to convert this to Typescript looks like this: let bufferLayer = new GraphicsLayer();
let pointLayer = new GraphicsLayer();
map.addMany([bufferLayer,pointLayer]);
function createBuffer(event:any, view:MapView) {
event.stopPropagation();
let point = view.toMap({
x: event.x
y: event.y
});
if (point) {
bufferPoint(point);
}
}
function bufferPoint(point:Point) {
clearGraphics();
pointLayer.add(
new Graphic({
geometry: point,
})
);
let buffer = geometryEngine.geodesicBuffer(point, 1, "miles");
let polySym = {
type: "simple-fill", // autocasts as new SimpleFillSymbol()
color: [140, 140, 222, 0.5],
outline: {
color: [0, 0, 0, 0.5],
width: 2
}
};
let bufferLayer.add(
new Graphic({
geometry: buffer,
symbol: polySym
})
); This works for the point, which is added to the point graphics layer if I comment out the last section ("let bufferLayer,,,,). But it doesn't work for the buffer. When I try to compile, it screams: So somewhere I must be forgetting to correctly declare the right type ? geometry property appears to be type __esri.GraphicProperties, and buffer __esri.Polygon. The ESRI example was for API v11 ... so has something changed? How do I make this jive?
... View more
04-18-2019
01:19 PM
|
0
|
4
|
2470
|
|
POST
|
Okay. Here is what worked for me. It doesn't make complete sense to me but it solved my problem. Typescript compiler options are explained here. For -- esModuleInterOp So the defaults is false. In my tsconfig this was true. So I changed it to false and tried with both "target" : "es5", and then "target" : "es6" Both result in: Uncaught TypeError: Map_1.default is not a constructor . Next, I compared --esModuleInterop: false using either "es5" or "es6". Here, I get no errors but my code is ignored as before. Finally, I came across this thread saying there are no default exports included for arcgis-js-api typings. Aha, so I switched my lovely imports from: import Map from "esri/Map"; back to: import Map = require( "esri/Map"); Problem solved. (Although I'm back to requires.) This suggestion ("workaround") sounded promising but didn't work for me. I think it must reference an earlier version of the API. Or maybe I misunderstood? Maybe a typo? import arcgisUtils from 'esri/arcgis/utils'; I'm still somewhat confused by the whole export process and targeting different JS flavors. But I guess that's just the state of things right now.
... View more
04-11-2019
12:17 PM
|
0
|
0
|
1740
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 08-16-2025 07:32 AM | |
| 1 | 02-09-2024 05:18 PM | |
| 1 | 02-04-2025 09:27 AM | |
| 1 | 03-22-2019 10:55 AM | |
| 1 | 03-05-2020 08:46 AM |
| Online Status |
Offline
|
| Date Last Visited |
a month ago
|