Hexagon Geospatial
MENU

GeoMedia Smart Client

GeoMedia Smart Client community discussion board is where you can create, contribute and share information and knowledge in regards to configuring as well as working with GeoMedia Smart Client. Find your answers, share your knowledge and help build a strong GeoMedia Smart Client community.
Showing results for 
Search instead for 
Do you mean 
Reply
Highlighted
Frequent Contributor
Posts: 81
Registered: ‎09-18-2018

Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

[ Edited ]

 

 

Hi,

 

it seems that I am having this error when I try to create symbols using a Custom/external graphic symbology from DB Entity it doesn't work.

 

Note: it perfectly works on SmartClient I can't create symbols for Public maps. :

 

'Capture.PNG

 

 

Server log:

 

09.07.2019 14:13:07 ERROR - Controller Symbol has raised an exception in Action CreateSymbols.
System.ArgumentException: The parameters dictionary contains a null entry for parameter 'project' of non-nullable type 'System.Guid' for method 'Intergraph.Emea.Workflows.JsonNetResult CreateSymbols(System.Guid)' in 'Intergraph.Emea.SmartClient.Administrator.SymbolController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters
   at System.Web.Mvc.ActionDescriptor.ExtractParameterFromDictionary(ParameterInfo parameterInfo, IDictionary`2 parameters, MethodInfo methodInfo)
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


Database view:

 

Capture.PNG

Symbology Resources:

 

Capture2.PNG

Edit Symbology Form Network Error:

Capture3.PNG

 

 

Request URL:
https://xxx.xx.x.xx/GMSC/StyleEditor/Service/sites/GMSCTest/symbologylibraries/58d8a3ca-6596-4896-8e43-6653dc239e9d/previews?symbologyLibraryId=58d8a3ca-6596-4896-8e43-6653dc239e9d&styleId=afb7072b-8770-4bf0-af0d-f6dc3f6a2eee&symbologyType=point&scale=5000&imageWidth=150&imageHeight=100
Request Method:
POST
Status Code:
500 Internal Server Error
Remote Address:
xxxx.xxx.xx.x.xx
Referrer Policy:
no-referrer-when-downgrade

Any suggestion would be good. Thank you

 

Super Contributor
Posts: 388
Registered: ‎10-12-2015

Re: Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

For POI symbols used in Public Maps:

 

https://hexagongeospatial.fluidtopics.net/reader/ygIYIl62KU0hrr1S0pTjYg/LSyl1OTJbFRJVSBR8m7skQ

 

Features must fulfill four requirements:

  • The feature geometry type must not be raster.
  • The feature must be locatable. This means the checkbox isLocatable must be checked.
  • The feature must not already be used as a POI.
  • Style must not contain DB values.

Are you using the defined style with DB value as source for POI symbol in Public Maps?

Frequent Contributor
Posts: 81
Registered: ‎09-18-2018

Re: Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

[ Edited ]

Hi Shaun,

 

Thank you for you answer. 

 

Unfortunately I was expecting that could be possible, but you cleary demonstrated that is not possible as you cannot 'CreateSymbols'. POIs Style should not contain DB values.

 

 

My situation is the following:

I have 22 icons in which reflects 22 conditions  (which implies upload 22 resources)  - 1 action

I don't want to define 22 symbology definitions - 22 actions

and apply 22 symbol rules on my feature. - 22 actions

 

This could take me 45 actions to accomplished my goal.

 

Therefore I thought that I could build just symbology as a point type with custom graphic element in which my graphic reference  comes from entity field. (3 actions: 1 upload resource, 1 Symbol definition, 1 trigger)

 

This worked smoothly for SmartClient but not for Public Maps as POI Style must not contain DB values

 

If there is any other way to achieve this would be awesome.

 

I thought that I might create a WMS but I believe that I will lose the map interaction in public maps as the public maps doesn't take into account the getFeatureInfo() so I wont be able to see a tooltip.

 

 

Thank you.

 

 

Super Contributor
Posts: 388
Registered: ‎10-12-2015

Re: Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

I don't have my system up just at the moment to check feasibility, but suspect you could add the feature with the db based symbology to the public maps map view then have interactive POI using an near transparent symbology sitting on top to interact with.

Frequent Contributor
Posts: 81
Registered: ‎09-18-2018

Re: Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

So I tried to add as feature on public maps but the results were bad:

SmartClient2.PNG

Is showing the same icon and the icon lost resolution.

 

On smart client you can see correctly like this:

 

SmartClient.PNG

 

I also tried the adding as WMS but it seems that doesn't allow to import a WMS as Feature. 


Super Contributor
Posts: 388
Registered: ‎10-12-2015

Re: Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

I can observe the problem in public maps when External Graphic file source is set to db field rather than fixed file.

You should find that in public works if you zoom in on a single feature it will show the correct symbol. Zoom out so that a second feature is displayed then both will use the same symbol and one will be wrong. i.e. both features seem to use the first symbol that the system comes across.

 

Setting other symbology fields source to a db field works, e.g. set the Graphic size to a db field name and that will work correctly in public maps.

 

Only workaround I can think off at present is:

  • setup multiple symbologies, one per external graphic  file
  • In the feature defintion, in the symbols tab, add multiple display rules with filter - symbology combinations.

I realise that is a pain compared to the ABS approach.

I'm working on logging a support ticket. 

 

For the symbol quality, it seems ok to me. I'm using .svg format.

GMSC

GMSCSymbols.png

Public Maps

publicMapsSymbols.png

 

Frequent Contributor
Posts: 81
Registered: ‎09-18-2018

Re: Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

"You should find that in public works if you zoom in on a single feature it will show the correct symbol." True

What happens in my case is if you zoom close enough to hide the other icons it will change the icon for the correct one. Basically it only show one icon per window view. It doesn't show multiple icons.

 

It's really a pity that you need to add one per external graphic. It was great if it at least was possible to add WMS into Public Maps.

 

Thanks

 

Technical Evangelist
Posts: 531
Registered: ‎09-11-2015

Re: Cannot CreateSymbols with Custom/External graphic symbology from DB Entity

Hi, the problem has already been reported to the developers.

 

Pavel

Do you need immediate support?
If you encounter a critical issue and need immediate assistance please submit a Service Request through our Support Portal.