POST
|
Hello Everyone, I have been getting a 001433 error from the Manage Tile Cache tool when trying to create a tile cache. The 'Manage Map Server Cache' Tool is regularly running for 1-3 hours and stopping with the following message: I am using ArcGIS Server 10.3 to cache a service based on a collection of vector layers that are stored in SQL Server (SDE). The server has 16gb of RAM and is not used for anything else (at the moment). I am using the compressed tile format and am caching a reasonably small extent (2,220 km2), to the following scales: 18489291.737236 (Fully Created) 9244648.868618 (Fully Created) 4622324.434309 (Fully Created) 2311162.217155 (Fully Created) 1155581.108577 (Fully Created) 577790.554289 (Fully Created) 288895.2714 (Fully Created) 144447.638572 (Fully Created) 72223.819286 (Fully Created) 36111.909643 (Fully Created) 18055.954822 (Fully Created) 9027.977411 (Fully Created) 4519.988705 (Fully Created) 2256.994353 (Fully Created) 1128.497176 (Fully Created) 564.25 (Partially Created) 282.12 (Partially Created) 141.06 (Partially Created) I have seen the following post (Caching Issue Since SP1 Upgrade ) but I do not think it is relevant as the ArcGIS Server is a different version and has not been recently upgraded. I realize that at the larger scales the the volume of data exponentially increases and I have tried to run the 'Manage Map Server Tile Cache' tool against individual scale levels and it will still crash after about an hour. Does anyone have any ideas as to what might be preventing the tiles from being created. Regards Sam
... View more
12-02-2015
04:13 PM
|
0
|
7
|
5324
|
POST
|
I have developed an application using the Esri leaflet plugin. I have several layers in the map - one of which is a feature layer. This was added to the map using the following snippet and for the most part works well:
var options = {
pointToLayer: lang.hitch(this, this._busStopsPointToLayer),
maxZoom:18,
minZoom:15,
where:exp
};
var featureLayer = new L.esri.featureLayer(url, options);
this.map.addLayer(featureLayer);
However, sporadically when testing the application I can get some of the features appearing outside of the specified minZoom and maxZoom parameters, see the screen shot below. This is a subset of the bus stops that appear along the route and they should not appear at this scale.
Has anyone seen this before or have ideas about how to fix it.
... View more
07-30-2015
06:59 PM
|
0
|
1
|
3579
|
POST
|
I'm pretty sure that I understand what you are thinking now. That approach sounds reasonable providing you don't have many facilities. The limitation is that every time you want to find the nearest route you will be passing the clicked location + all the facility features to the server each time as parameters. This is potentially really inefficient. An alternative option might be to create a geoprocessing service which: - Accepts a point as an input parameter - Does all the routing and finds the nearest facility based on the source data server side - returns the nearest facility as a point feature Make sense? Sam
... View more
06-24-2015
06:32 PM
|
1
|
1
|
1314
|
POST
|
However, if you want to get the point features from the facilities feature service you could probably do a query like the one below: [servername]/arcgis/rest/services/[mapservicename]/MapServer/[layerIndex]/query?where=objectid>1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&f=json This simply asks for all the features with an ObjectID > 0 and asks for all fields to be returned ('*'). You could be specific about which fields you want returned. If you want to see the REST form for creating the query you could just change the 'f' parameter to equal 'html' so: [servername]/arcgis/rest/services/[mapservicename]/MapServer/[layerIndex]/query?where=objectid>1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&f=html
... View more
06-24-2015
04:57 PM
|
1
|
0
|
1314
|
POST
|
Okay, that makes sense so far - with one exception. You said "because it's using a WebMap from AGOL the layers are being shown as images not features with geometry" - the webmap doesn't define whether its an image or a feature. Do you mean that you are using a tiled service in the webmap? However, more to the point once you have the depot points how do you intend to get the closest facility? Sam
... View more
06-24-2015
04:43 PM
|
0
|
4
|
1314
|
POST
|
Hey Hamish, Your post is a little tricky to decipher. Are you able to confirm the following: Are you wanting to find the nearest location by driving distance (routing) or as the crow flies (Euclidean) You have access to a location (point) that the user will click on the map You have access to a map/feature service that has the location of all the depots If I can get some clarification I might be able to help you a little bit more. Or you can message me privately and we can chat on the phone. Thanks Sam
... View more
06-24-2015
03:46 PM
|
0
|
6
|
1314
|
POST
|
Thanks Bernie. To be honest, this was how I was going to tackle the problem intially. The issue is that there is not an easy way to get a handle on the unopened web maps spatial reference - so I can perform a projection using a geometry service for sure - but I don't know what I'm projecting it into. Would seem more sensible for the web app builder to: 1. Get the parameters from the URL 2. If there is a webmap ID - load the webmap and 3. Get a web maps spatial reference 4. check if the WKID of the webmap and the extent args match 5. If they don't do a reproject 6. Move the map to the reprojected extent. Thanks
... View more
04-30-2015
03:54 PM
|
0
|
0
|
972
|
POST
|
Thanks Robert, I scoured through the code last night and agree - I don't see anywhere where the extent is reprojected. So it strikes me as odd that you need to specify a WKID, if the app is simply going to ignore it and use the extent parameters in whatever projection the web map is in. Oh well.
... View more
04-30-2015
03:50 PM
|
0
|
0
|
972
|
POST
|
Hello All, As per the Esri documentation I know that I can pass a URL parameter to go to a predefined extent using a projected coordinate system. The parameters require a xmin, ymin, xmax, ymax and a WKID. I'm building a web app builder widget that allows the user to open a new web app at the same extent that they are currently viewing - however, I need to be able to handle multiple projection system (NZTM, NZMG and Web Mercator). What I want to know is if the Web App Builder takes care of reprojecting the extent? So if I capture the current extent of the map in NZTM, open a new tab and pass in a NZTM URL Extent to a NZMG based webmap will the app reproject and go to the correct location in my new app instance. Thanks Sam
... View more
04-29-2015
10:11 PM
|
0
|
4
|
5177
|
POST
|
Hey Michael, I'm agree with you - I think it is because you are using a minified version of the widget. I've used both Chrome and Firefox to debug custom widgets (and Web AppBuilder souce code). Are you able to debug any of the OOTB widgets from the developers edition? Sam
... View more
04-01-2015
01:11 PM
|
0
|
0
|
1120
|
POST
|
Hey Nat and Stan, Nat thanks for replying but Stan is correct. I'm still working in a dev environment and I'm simply opening the stemapp using http://[servername]/webappbuilder/?id=stemapp and manually changing the theme using the WAB. Thanks S
... View more
03-25-2015
02:39 PM
|
0
|
0
|
509
|
POST
|
Hello All, Has anyone attempted to create a theme with multiple widget controllers for the WAB 1.1. I'm not sure if this functionality is fully implemented and supported. I have a client who is looking to migrate an old stand alone template into a web app builder theme. This theme will blend aspects of both the foldable theme and the tab theme. Meaning that it will have some widgets controlled from the Header Widget and some from the tab container - please see attached wire frame. I have copied the TabContainer and the Header container into my theme (with varying success - see Custom Theme - Style.css not applying ) and I can see them both appearing in the AppBuilder under the widgets tab (see attached Widgets Screenshot) - leading to believe that this has at least been partially implemented. However, it appears that both controllers are attempting to manage the same widget pool - rather than each having their own. I attempted to override the controlledWidgets property in the HeaderController.js (which is inherited from PoolMixinController.js) based a seeing I added to the HeaderController's config.json. This worked on the inital load in the HeaderController but is ignored by the AppBuilder - meaning that all widget configuration would probably need to be done in json files. I'm wondering if I have simply missed a configuration parameter at a high level - say in the app.config? But I cannot see this anywhere in the documentation. Any thoughts would be appreciated. Sam
... View more
03-23-2015
04:20 PM
|
1
|
3
|
4937
|
POST
|
Hello All, I'm in the process of developing a custom theme for the web appbuilder version 1.1. I am going to customise the FoldablePanel from the Foldable Theme. As Such I have: 1. Copied the entire FoldableTheme\panels\FoldablePanel folder to my [CustomTheme]\panels\FoldablePanel directory 2. Added the following to the [CustomTheme]\manifest.json file: "panels": [{ "name": "FoldablePanel", "description": "This is foldable panel" }] 3. Added the following to the [CustomTheme]\layouts\default\config.json file: "widgetPool": { "panel": { "uri": "themes/[CustomTheme]/panels/FoldablePanel/Panel", "positionRelativeTo": "map", "position": { "top": 50, "right": 5, "bottom": 5 } } } I can open http://[ServerName]/webappbuilder/?id=stemapp and I can see the foldable panels working in the Foldable theme. However, when I switch to my custom themes and open a widget it loads in the foldable panel but the styles from [CustomTheme]\panels\FoldablePanel\style.css. Any one have any ideas as to what is happening? Regards Sam
... View more
03-23-2015
01:23 PM
|
0
|
3
|
4327
|
POST
|
Hello All, I spent some time looking through the jimu.js folder specifically at the MapManager, LayoutManager and the WidgetManager to see how Esri manages with map and widget lifecycle. From this I have found the following solution. When the user clicks on a button to load a new web map the following happens: //The widget broadcasts a message that the map is about to be destroyed topic.publish('beforeMapDestory', this.map); //The map is destroyed this.map.destroy(); //A new deffered object is created to handle the creation of a new webmap var mapDeferred = jimuUtils.createWebMap(portalUrl, webMapItemId, mapContainerId, webMapOptions); //The deffered is executed ensuring that the response is executed with "this" being the widget.js file mapDeferred.then(lang.hitch(this, this._processNewMapSuccess), lang.hitch(this, this._processNewMapFail)); When the web map creation is complete the following function is executed: //I set up the returned web map as a map object var map = response.map; map.itemId = this.appConfig.map.itemId; map.itemInfo = response.itemInfo; map.webMapResponse = response; // enable snapping var options = { snapKey: keys.copyKey }; map.enableSnapping(options); //The widget gets a handle on the appConfig var appConfig = this.appConfig //The widget gets the configuration for the widget of interest //This would need to be made dynamic but for testing I //just simply grabbed the widget by its position in the array var mapSwitcherWidgetConfig = appConfig.widgetPool.widgets[9] //The widget changes the openAtStart propertie to true mapSwitcherWidgetConfig.openAtStart = true //The map is set as the applications map property this.map = map; //The widget broadcasts a message that the map has been changed //The app builder handles all the magic from here topic.publish('mapChanged', this.map); One thing I haven't included in the code above is that you can change the intial map extent in the appConfig so that when the new web map loads its displayed at the extent that the user was previously viewing at. Hope this helps everyone. Regards Sam
... View more
03-17-2015
02:06 PM
|
3
|
1
|
591
|
Title | Kudos | Posted |
---|---|---|
1 | 03-23-2015 04:20 PM | |
1 | 06-24-2015 04:57 PM | |
1 | 06-24-2015 06:32 PM | |
3 | 03-17-2015 02:06 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|