|
POST
|
George....see ST_Raster is a security Risk? Why? Looks like it WON'T be supported! ESRI will "Support" it, but its not very likely that any IT shop is going to let this be installed on production servers. Does ESRI have plans to mitigate this security risk by signing the assembly or removing dependence on CLR?
... View more
06-14-2015
01:54 PM
|
1
|
0
|
2024
|
|
POST
|
Apparently, when enabling ArcGIS Help 10.1 ST_Raster in SQL 2008/12 SDE (10.2 or 10.3) databases, the assembly is set to "Unsafe" by default. Attempts to set it to "Safe" result in Msg 6218, Level 16, State 2, Line 3
CREATE ASSEMBLY for assembly 'libst_raster_sql' failed because assembly 'libst_raster_sql' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database. CLR Verifier error messages if any will follow this message
[ : <Module>::.cctor][mdToken=0x6000eeb][offset 0x00000000] initlocals must be set for verifiable methods with one or more local variables.
[ : <Module>::_atexit_m][mdToken=0x6000008][offset 0x00000000] Unmanaged pointers are not a verifiable type.
[ : <Module>::atexit][mdToken=0x6000009][offset 0x00000000] Unmanaged pointers are not a verifiable type.
[ : <Module>::?A0x06aa64bb.??__E?A0x06aa64bb@RCS_Tag@@YMXXZ][mdToken=0x600000b][offset 0x00000000] Cannot modify an imaged based (RVA) static
[ : <Module>::FileSearchNode.{ctor}][mdToken=0x600000c][offset 0x00000000] Unmanaged pointers are not a verifiable type.
[ : <Module>::FileSearchNode.__vecDelDtor][mdToken=0x600000d][offset 0x00000005] Unmanaged pointers are not a verifiable type.
[ : <Module>::FileSearchNode.__vecDelDtor][mdToken=0x600000d][offset 0x0000002B] Unmanaged pointers are not a verifiable type.
[ : <Module>::FileSearchNode.{dtor}][mdToken=0x600000e][offset 0x00000000] Unmanaged pointers are not a verifiable type.
[ : <Module>::FileSearchNode.reset][mdToken=0x600000f][offset 0x00000000] Unmanaged pointers are not a verifiable type.
[ : <Module>::FileSearchNode.alloc][mdToken=0x6000010][offset 0x00000001] Unmanaged pointers are not a verifiable type.
[ : <Module>::?A0x06aa64bb.??__E??_R0PEAD@8@@YMXXZ][mdToken=0x6000011][offset 0x0000000A][found address of value '<CppImplementationDetails>.$ArrayType$$$BY01Q6MXXZ'][expected address of Long] Unexpected type on the stack.
[ : <Module>::?A0x06aa64bb.??__E??_R0PEAD@8@@YMXXZ][mdToken=0x6000011][offset 0x0000000A][found address of value '<CppImplementationDetails>.$ArrayType$$$BY01Q6MXXZ'] Unexpected type on the stack.
[ : <Module>::?A0x06aa64bb.??__E??_R0PEAX@8@@YMXXZ][mdToken=0x6000012][offset 0x0000... That surely can't be the case?!?!??! We'll be other-than-ESRI database app customers pretty quickly if we can't use SDE to store 50% of our data.....instructions, as per Install ST_Raster in SQL Server—Help | ArcGIS for Desktop , such as installing it as sysadmin, have been followed. Still an unsafe assembly. The ESRI-provided SQL script to register the assembly includes these lines, which are both security holes. CREATE ASSEMBLY esri_raster FROM '$(st_raster_path)' WITH permission_set=UNSAFE
.....
EXEC sp_configure 'clr enabled',1 Some shifting of IT security winds are putting a lot of scrutiny on stuff like CLR and unsafe assemblies, not sure why ESRI would push out a product, that pretty soon, no one is going to be able to use due to stuff like this.
... View more
06-13-2015
10:35 AM
|
0
|
6
|
4990
|
|
POST
|
If youre database is a SQL SDE, you can use a function and trigger to do this real-time as data is edited. A slight modification of this SQL Code will do the trick, the modification being you'd have to alter the function to upper-case every character.
... View more
05-27-2015
07:02 AM
|
0
|
0
|
491
|
|
POST
|
Very informative post. A colleague of mine suggested using this to pair a Garmin Monterra with an Ipad, I'm interested in any specific settings or steps folks can share with actually getting the BT pairing and getting collector to recognize it.
... View more
05-18-2015
10:25 AM
|
0
|
0
|
1628
|
|
POST
|
Consider this scenario: An ArcGIS Server (10.3) hosted Map AND Feature Service, where the service is sourced from SDE. The Map Service is added to Portal (ANOTHER 10.3 server) using the "Add Web Service" tool in Portal. The ArcGIS Server is NOT federated to the Portal Server. When adding the Map Service (item) to a Map in Portal, users can change the symbology of the features, in the Portal Web Map. From a desktop 10.2 OR 10.3 client, when users are signed into Portal via the ArcGIS Administrator tool, and use the "Add Data From Portal" tool in ArcMap, when they add the Map Service via that Dialogue, they cannot change symbology. When they add the service directly from the stand-alone (not federated with Portal) server as an ArcGIS Server Service, they can modify the symbology in ArcMap. The question is, is this the default behavior? If I hook a non-federated Map Service into Portal, ArcMap users of that service, using it through Portal, loose some functionality? The whole point of Portal is to have a one-stop-and-shop place for data use and discovery for all of our data. Directing users to different service locations based on their intended end use defeats that purpose. Federating the stand-alone ArcGIS Server with Portal is not an option. Interestingly enough, if I do all of the above, but with a Feature Service, users can change symbology in ArcMap, using the same workflow described above.
... View more
04-16-2015
08:25 AM
|
0
|
0
|
2874
|
|
POST
|
This might be a dumb question, is it possible to query results as KML as you can with geojson from an AGOL hosted feature service? ArcGIS REST API I can do this with my internal ArcGIS Server instance when I enable KML during publishing, why can't I do this with an AGOL hosted FS? Sure would be nice to be able to reach the large part of my public audience that is looking for KML-version of our data.
... View more
04-09-2015
10:22 AM
|
0
|
0
|
2722
|
|
POST
|
Are you clustering (two or more ArcGIS Servers in, say, a "Default" cluster) servers across a WAN backbone? E.g. Round-robin, with one server in one city, and another server,....in another city. All communicating on a private fiber circuit. We have an issue (numerous, actually) with the second server in the cluster, and I've been informed by ESRI tech support that clustered servers that ARE NOT on the same LAN....is not supported by ESRI. Has anyone else experienced this? I'm a bit skeptical.......
... View more
04-06-2015
12:50 PM
|
0
|
0
|
2580
|
|
BLOG
|
In Using SQL to Auto-Populate XY Values I described how to use SQL Geography in SDE to automate the population of Lat and Lon values. IN some applications, my users are also looking for Degrees, Minutes, and Seconds, depending on the application, mission, and the end-user. In my line of business, we deal with a lot of folks whom are still looking at GPS read-outs on their mobile or GPS device in that format. With the automation of data production, I'd like for end users to be able to "click" on a feature (in Portal or AGOL) and be able to see coordinate pairs in numerous formats, without having to "push more buttons". Real handy when a helo pilot whom learned how to fly in 'Nam with a topo map strapped to his knee radios in for the location of the drop point.... By adding some text attributes to a feature class and spinning some SQL magic on the back-end, you can automate the population of Degrees, Minutes, and Seconds, with proper annotation, on data creation. Now downstream users can get coordinate pairs in whatever format they need! Here's the business end: SELECT
[SHAPE].[Lat] as [DecimalLatitude],
floor(ABS([SHAPE].[Lat]))*(CASE WHEN [SHAPE].[Lat] < 0 then -1 ELSE 1 END) as [LatDegrees],
convert(int,[SHAPE].[Lat]*60) % 60 as [LatMinutes],
convert(decimal(4,2),convert(decimal(17,10),[SHAPE].[Lat]*3600) % 60) as [LatSeconds],
[SHAPE].[Long] as [DecimalLongitude],
floor(ABS([SHAPE].[Long]))*(CASE WHEN [SHAPE].[Long] < 0 then -1 ELSE 1 END) as [LongDegrees],
convert(int,ABS([SHAPE].[Long])*60) % 60 as [LongMinutes],
convert(decimal(4,2),convert(decimal(17,10),ABS([SHAPE].[Long])*3600) % 60) as [LongSeconds]
FROM [SOME TABLE IN GEOGRAPHY FORMAT] which returns a bunch of columns: DecimalLatitude LatDegrees LatMinutes LatSeconds DecimalLongitude LongDegrees LongMinutes LongSeconds 35.6855385005474 35 41 7.94 -83.5370928999037 -83 32 13.53 35.6871696002781 35 41 13.81 -83.5376158999279 -83 32 15.42 35.6880251001567 35 41 16.89 -83.5350660998374 -83 32 6.24 Mixing things up we can: SELECT
cast(convert(int,(floor(ABS([SHAPE].[Lat]))))as varchar) +NCHAR(176)+' '+ cast( convert(int,[SHAPE].[Lat]*60) % 60 as varchar) + ''' '+
cast( convert(decimal(17,3),[SHAPE].[Lat]*3600) % 60 as varchar) + '"',
'-'+cast(convert(int,(floor(ABS([SHAPE].[Long]))))as varchar) +NCHAR(176)+' '+ cast( convert(int,ABS([SHAPE].[Long])*60) % 60 as varchar) + ''' '+
cast( convert(decimal(17,3),ABS([SHAPE].[Long])*3600) % 60 as varchar) + '"'
FROM [SOME TABLE IN GEOGRAPHY FORMAT] Note the addition of some ABS to keep negative symbols where they belong, and NCHAR(176) which gives us the Degree Symbol. (No column name) (No column name) 35° 41' 7.939" -83° 32' 13.534" 35° 41' 13.811" -83° 32' 15.417" 35° 41' 16.890" -83° 32' 6.238" 35° 41' 16.673" -83° 32' 17.458" And here's how it works in a trigger: CREATE TRIGGER [dbo].[YAY_GEOMETRY]
ON [dbo].[YAY]
after INSERT,UPDATE NOT FOR REPLICATION
AS
BEGIN
SET NOCOUNT ON;
UPDATE p SET
SHAPE = CASE WHEN i.SHAPE IS NOT NULL
THEN p.SHAPE ELSE Geography::STPointFromText('POINT('
+ CAST(p.LON AS VARCHAR(20)) + ' '
+ CAST(p.LAT AS VARCHAR(20)) + ')', 4269) END,
LON = CASE WHEN p.SHAPE IS NULL THEN p.LON ELSE p.SHAPE.Long END,
LAT = CASE WHEN p.SHAPE IS NULL THEN p.LAT ELSE p.SHAPE.Lat END,
DMSLAT = cast(convert(int,(floor(ABS(p.SHAPE.Lat))))as varchar) +NCHAR(176)+' '+ cast( convert(int,p.SHAPE.Lat*60) % 60 as varchar) + ''' '+
cast( convert(decimal(17,3),p.SHAPE.Lat*3600) % 60 as varchar) + '"' ,
DMSLON = '-'+cast(convert(int,(floor(ABS(p.SHAPE.Long))))as varchar) +NCHAR(176)+' '+ cast( convert(int,ABS(p.SHAPE.Long)*60) % 60 as varchar) + ''' '+
cast( convert(decimal(17,3),ABS(p.SHAPE.Long)*3600) % 60 as varchar) + '"'
FROM YAY
AS p
;
END For Degrees Decimal-minutes you could use: DDMLAT = cast(convert(int,(floor(ABS(p.SHAPE.Lat))))as varchar) +NCHAR(176)+' '+cast( floor(convert(decimal(17,5),p.SHAPE.Lat*60) % 60) as varchar) + '.'+cast( parsename(convert(decimal(17,7),p.SHAPE.Lat*60) % 60,1) as varchar) + ''' ', DDMLON = '-'+cast(convert(int,(floor(ABS(p.SHAPE.Long))))as varchar) +NCHAR(176)+' '+cast( floor(convert(decimal(17,5),abs(p.SHAPE.Long*60)) % 60) as varchar) + '.'+cast( parsename(convert(decimal(17,7),p.SHAPE.Long*60) % 60,1) as varchar) + ''' ',
... View more
03-31-2015
11:15 AM
|
2
|
0
|
1568
|
|
POST
|
being able to document and diagram a geodatabase is a pretty important part of a Geodatabase design and administration work flow. What are ESRI's plans to support that in light of the retirement of the diagrammer tool?
... View more
03-19-2015
05:05 AM
|
11
|
15
|
4572
|
|
POST
|
And now with the installation of Mapping and Charting Solutions 10.2.2 Patch 2 | Samples and Utilities the same error is produced once again with ArcMap 10.2.2. Really frustrated with how every version and patch from ESRI continually breaks things that reasonably would be stable through releases..... Traceback (most recent call last):
File "X:\GIS_Final\data\basedata\basemap\Data\Working\Python_Automated_Scripts\GRSMHYDRO.py", line 39, in <module>
arcpy.ExtractData_production("X:\\GIS_Final\\data\\basedata\\basemap\\Data\\Working\\Python_Automated_Scripts\\GRSM.sde\\GRSM.DBO.Boundaries_And_AOIs","USE_FILTERS", GDB,"DO_NOT_REUSE","NO_FILTER_BY_GEOMETRY","INTERSECTS","")
AttributeError: 'module' object has no attribute 'ExtractData_production'
... View more
03-18-2015
02:07 PM
|
0
|
0
|
1570
|
|
POST
|
I may have spoke too soon: the basemap gallery loads, and I can switch between all basemaps EXCEPT for web tiled, such as: {
"layers": [
{
"templateUrl": "http://{subDomain}.tiles.mapbox.com/v3/nps.map-n9nxe12m/{level}/{col}/{row}.png",
"id": "WebTiled_1759",
"type": "WebTiledLayer",
"title": "Mapbox Imagery",
"copyright": "Attribution for MapBox tilesets: Data © OpenStreetMap contributors. Design © MapBox.",
"fullExtent": {
"xmin": -20037508.342787,
"ymin": -20037508.34278,
"xmax": 20037508.34278,
"ymax": 20037508.342787,
"spatialReference": {
"wkid": 102100
}
},
"subDomains": [
"a",
"b",
"c",
"d"
],
"visibility": true,
"opacity": 1
}
],
"title": "Mapbox Imagery",
"thumbnailUrl": "//gisportal.nps.gov/arcgis/sharing/rest/content/items/62f8b8ab556d474ba1070b3e1f68f593/info/thumbnail/mapboxsatellite.jpg",
"spatialReference": {
"wkid": "102100"
}
} which when loaded returns this error: Uncaught TypeError: Cannot read property 'substring' of undefinedWebTiledLayer.js:8 b.constructorinit.js:108 (anonymous function)BasemapGallery.js:80 (anonymous function)init.js:229 g.forEachBasemapGallery.js:78 g._switchBasemapLayersBasemapGallery.js:77 g._getServiceInfosBasemapGallery.js:75 g._selectBasemapGallery.js:65 g.selectBasemapGallery.js:74 g._onNodeClickinit.js:176 (anonymous function) Which leads to this library: define("esri/layers/WebTiledLayer","dojo/_base/declare dojo/_base/lang dojo/_base/array dojo/_base/url dojo/has dojo/string ../kernel ../urlUtils ../SpatialReference ../geometry/Extent ./TiledMapServiceLayer ./TileInfo".split(" "),function(b,m,g,n,p,k,q,r,h,l,s,t){b=b(s,{declaredClass:"esri.layers.WebTiledLayer",constructor:function(d,a){a||(a={});this.urlTemplate=d;var f=new l(-2.0037508342787E7,-2.003750834278E7,2.003750834278E7,2.0037508342787E7,new h({wkid:102100})),e=new l(-2.0037508342787E7,
-2.003750834278E7,2.003750834278E7,2.0037508342787E7,new h({wkid:102100}));this.initialExtent=a.initialExtent||f;this.fullExtent=a.fullExtent||e;this.tileInfo=a.tileInfo?a.tileInfo:new t({rows:256,cols:256,origin:{x:-2.0037508342787E7,y:2.0037508342787E7},spatialReference:{wkid:102100},lods:[{level:0,resolution:156543.033928,scale:5.91657527591555E8},{level:1,resolution:78271.5169639999,scale:2.95828763795777E8},{level:2,resolution:39135.7584820001,scale:1.47914381897889E8},{level:3,resolution:19567.8792409999,
scale:7.3957190948944E7},{level:4,resolution:9783.93962049996,scale:3.6978595474472E7},{level:5,resolution:4891.96981024998,scale:1.8489297737236E7},{level:6,resolution:2445.98490512499,scale:9244648.868618},{level:7,resolution:1222.99245256249,scale:4622324.434309},{level:8,resolution:611.49622628138,scale:2311162.217155},{level:9,resolution:305.748113140558,scale:1155581.108577},{level:10,resolution:152.874056570411,scale:577790.554289},{level:11,resolution:76.4370282850732,scale:288895.277144},
{level:12,resolution:38.2185141425366,scale:144447.638572},{level:13,resolution:19.1092570712683,scale:72223.819286},{level:14,resolution:9.55462853563415,scale:36111.909643},{level:15,resolution:4.77731426794937,scale:18055.954822},{level:16,resolution:2.38865713397468,scale:9027.977411},{level:17,resolution:1.19432856685505,scale:4513.988705},{level:18,resolution:0.597164283559817,scale:2256.994353},{level:19,resolution:0.298582141647617,scale:1128.497176}]});this.spatialReference=new h(this.tileInfo.spatialReference.toJson());
this.copyright=a.copyright||"";var c=new n(d),f=c.scheme+"://"+c.authority+"/";this.urlPath=d.substring(f.length);this.tileServers=a.tileServers||[];-1===c.authority.indexOf("{subDomain}")&&this.tileServers.push(f);if(a.subDomains&&0<a.subDomains.length&&1<c.authority.split(".").length){this.subDomains=a.subDomains;var b;g.forEach(a.subDomains,function(a,d){-1<c.authority.indexOf("${subDomain}")?b=c.scheme+"://"+k.substitute(c.authority,{subDomain:a})+"/":-1<c.authority.indexOf("{subDomain}")&&(b=
c.scheme+"://"+c.authority.replace(/\{subDomain\}/gi,a)+"/");this.tileServers.push(b)},this)}this.tileServers=g.map(this.tileServers,function(a){"/"!==a.charAt(a.length-1)&&(a+="/");return a});this._levelToLevelValue=[];g.forEach(this.tileInfo.lods,function(a){this._levelToLevelValue[a.level]=a.levelValue||a.level},this);this.loaded=!0;this.onLoad(this)},getTileUrl:function(d,a,b){d=this._levelToLevelValue ;var e=this.tileServers[a%this.tileServers.length]+k.substitute(this.urlPath,{level:d,col:b,
row:a}),e=e.replace(/\{level\}/gi,d).replace(/\{row\}/gi,a).replace(/\{col\}/gi,b),e=this.addTimestampToURL(e);return r.addProxy(e)}});p("extend-esri")&&m.setObject("layers.WebTiledLayer",b,q);return b}); Again, this is out of the box, why does the ESRI basemap widget take so much elbow grease to get working?
... View more
02-26-2015
05:51 AM
|
0
|
3
|
1478
|
|
POST
|
Since we're expanding the horizon of reasonable widget requests, I want the Robert Sheitlin Widget, where all I have to do is put Robert in my WAB config file and it just does everything.
... View more
02-25-2015
04:29 PM
|
3
|
1
|
1513
|
|
POST
|
Amazing. That worked! What makes me grrrr...is this is the json that "came out of the box" when I pulled the config, which is pulling the basemaps defined by the portal admin globally.
... View more
02-25-2015
04:24 PM
|
0
|
0
|
1478
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 03-14-2019 06:24 AM | |
| 1 | 07-12-2018 09:29 AM | |
| 1 | 06-27-2019 12:08 PM | |
| 2 | 09-23-2019 11:03 AM | |
| 1 | 08-08-2019 07:02 AM |
| Online Status |
Offline
|
| Date Last Visited |
06-28-2024
02:40 AM
|