Ok thanks a lot .

Regards,Fawzy
--
Securely sent with Tutanota. Claim your encrypted mailbox today!
https://tutanota.com <https://tutanota.com>

29. May 2018 13:21 by [email protected] 
<mailto:[email protected]>:


> Hi,> sorry I cannot be of further assistance, but encourage you to spend 
> extra time and make debugger> attachment work... that's what I would do, at 
> the very least.
> Cheers> Andrea
> On Tue, May 29, 2018 at 11:05 AM,  <> [email protected] 
> <mailto:[email protected]>> > wrote:
>
>>           >> Hi Andrea,>> Thanks for your reply again.
>> I was not able to attach a debugger to the process, however I debugged it 
>> with System.err.print.
>> Any way, I found that the reason for the NullPointerException is that the 
>> passed feature is null>> public Object evaluate(Object feature) {
>>         Expression paramsExpression = params.get(0);
>>         int geomId = paramsExpression.evaluate(feature, Integer.class);
>>     ....
>> }>> I don't know why the feature is null !! I looked into the code of 
>> HeatmapProcess but was not able to find the reason. Could you please help?
>>
>> My SLD is:
>> <ogc:Function name="vec:Heatmap">
>>     <ogc:Function name="parameter">
>>       <ogc:Literal>data</ogc:Literal>
>>     </ogc:Function>
>>     <ogc:Function name="parameter">
>>       <ogc:Literal>weightAttr</ogc:Literal>
>>         <ogc:Function name="MyFunction">
>>           <ogc:PropertyName>gtid</ogc:PropertyName>
>>         </ogc:Function>              
>>     </ogc:Function>
>> </ogc:Function>
>> Regards,>> Fawzy
>>
>> --
>> Securely sent with Tutanota. Claim your encrypted mailbox today!
>> https://tutanota.com <https://tutanota.com>
>>
>> 27. May 2018 16:01 by >> [email protected] 
>> <mailto:[email protected]>>> :
>>
>>
>>> Hi,>>> I had a cursory look at the heatmap process modifications, they seem 
>>> fine to me (but did not try them).>>> Suggestion, attach a debugger, stick 
>>> a breakpoint in the process execute method, and see what >>> expression 
>>> you're really getting, and trace to the source of the issue from there.
>>> Cheers>>> Andrea
>>>
>>> On Sun, May 27, 2018 at 12:52 PM,  <>>> [email protected] 
>>> <mailto:[email protected]>>>> > wrote:
>>>
>>>>           >>>> Hi Andrea,
>>>> Thanks a lot for your reply.
>>>> It works partially, with a problem.
>>>> When I do the following, it works:
>>>> <ogc:Function name="vec:Heatmap">
>>>>     <ogc:Function name="parameter">
>>>>       <ogc:Literal>data</ogc:Literal>
>>>>     </ogc:Function>
>>>>     <ogc:Function name="parameter">
>>>>       <ogc:Literal>weightAttr</ogc:Literal>
>>>>         <ogc:Function name="MyFunction">
>>>>           <ogc:Literal>120</ogc:Literal>
>>>>         </ogc:Function>              
>>>>     </ogc:Function>
>>>> </ogc:Function>
>>>>
>>>> Here I'm passing the parameter as a literal value (120), but I need to 
>>>> pass the id field not a literal value, so I did the following, but It 
>>>> doesn't work:
>>>> <ogc:Function name="vec:Heatmap">
>>>>     <ogc:Function name="parameter">
>>>>       <ogc:Literal>data</ogc:Literal>
>>>>     </ogc:Function>
>>>>     <ogc:Function name="parameter">
>>>>       <ogc:Literal>weightAttr</ogc:Literal>
>>>>         <ogc:Function name="MyFunction">
>>>>           <ogc:PropertyName>gtid</ogc:PropertyName>
>>>>         </ogc:Function>              
>>>>     </ogc:Function>
>>>> </ogc:Function>
>>>>
>>>> It gives a NullPointerExeption at the 2nd line of my evaluate function:
>>>> public Object evaluate(Object feature) {
>>>>         Expression paramsExpression = params.get(0);
>>>>         int geomId = paramsExpression.evaluate(feature, Integer.class);
>>>>     ....
>>>> }
>>>>
>>>> MyFunction works perfectly in other situations, such as the following:
>>>>   <PointSymbolizer>
>>>>     <Graphic>
>>>>       <Mark>
>>>>         <WellKnownName>circle</WellKnownName>
>>>>         <Fill>
>>>>           <CssParameter name="fill">#FF0000</CssParameter>
>>>>         </Fill>
>>>>       </Mark>
>>>>       <Size>
>>>>         <ogc:Function name="MyFunction">
>>>>           <ogc:PropertyName>gtid</ogc:PropertyName>
>>>>         </ogc:Function>    
>>>>       </Size>
>>>>     </Graphic>
>>>>   </PointSymbolizer>
>>>>
>>>> I've attached the HeatmapProcess.java after modification (all 
>>>> modifications are marked with "CR#temp")
>>>>
>>>> Regards,
>>>> Fawzy
>>>>
>>>> --
>>>> Securely sent with Tutanota. Claim your encrypted mailbox today!
>>>> https://tutanota.com <https://tutanota.com>
>>>>
>>>> 26. May 2018 17:08 by >>>> [email protected] 
>>>> <mailto:[email protected]>>>>> :
>>>>
>>>>
>>>>> Hi,>>>>> the current definition of the process only accepts a String:
>>>>> https://github.com/geotools/geotools/blob/865cc72a90b07841a4c871d1b07fcc8e5defd35b/modules/unsupported/process-feature/src/main/java/org/geotools/process/vector/HeatmapProcess.java#L140
>>>>>  
>>>>> <https://github.com/geotools/geotools/blob/865cc72a90b07841a4c871d1b07fcc8e5defd35b/modules/unsupported/process-feature/src/main/java/org/geotools/process/vector/HeatmapProcess.java#L140>
>>>>>
>>>>> You'll have to modify the process so that it accepts an Expression 
>>>>> instead, and then>>>>> you should be able to call it like this 
>>>>> (completely untested, mind, I hope it's going to work but I'm not sure):
>>>>> <ogc:Function name="vec:Heatmap">
>>>>>             <ogc:Function name="parameter">
>>>>>               <ogc:Literal>data</ogc:>>>>> Literal>
>>>>>             </ogc:Function>
>>>>>             <ogc:Function name="parameter">
>>>>>               <ogc:Literal>weightAttr</ogc:>>>>> Literal>
>>>>>               <>>>>> ogc:Function name="yourFunction">>>>>>               
>>>>>    ....>>>>>               </ogc:Function>  
>>>>>             </ogc:Function>
>>>>> </ogc:Function>
>>>>>
>>>>> Cheers>>>>> Andrea
>>>>>
>>>>> On Sat, May 26, 2018 at 3:47 PM,  <>>>>> [email protected] 
>>>>> <mailto:[email protected]>>>>>> > wrote:
>>>>>
>>>>>>           >>>>>> Hi,
>>>>>> In Geoserver's heat-map, as mentioned in the documentations, I can 
>>>>>> select the weightAtrr field, for example:
>>>>>>
>>>>>> <ogc:Function name="vec:Heatmap">
>>>>>>     <ogc:Function name="parameter">
>>>>>>         <ogc:Literal>data</ogc:Literal>
>>>>>>     </ogc:Function>
>>>>>>     <ogc:Function name="parameter">
>>>>>>         <ogc:Literal>weightAttr</ogc:Literal>
>>>>>>         <ogc:Literal>field1</ogc:Literal>
>>>>>>     </ogc:Function>
>>>>>> </ogc:Function>
>>>>>>
>>>>>> My situation is that the weight attribute, that I want to create the 
>>>>>> heat-map depending on it, is not a field of the layer, it's a Geotools 
>>>>>> custom function that I created. This function takes the field id as a 
>>>>>> parameter, and makes some queries according to it, then returns a 
>>>>>> number. For example the function is in the form:
>>>>>> int GetTheValue(int id)
>>>>>>
>>>>>> My question is that how to make this in SLD.
>>>>>>
>>>>>> <ogc:Function name="vec:Heatmap">
>>>>>>             <ogc:Function name="parameter">
>>>>>>               <ogc:Literal>data</ogc:Literal>
>>>>>>             </ogc:Function>
>>>>>>             <ogc:Function name="parameter">
>>>>>>               <ogc:Literal>weightAttr</ogc:Literal>
>>>>>>                  <!-- call the function here -->
>>>>>>             </ogc:Function>
>>>>>> </ogc:Function>
>>>>>>
>>>>>> Regards,>>>>>> Fawzy
>>>>>>   
>>>>>> ------------------------------------------------------------------------------
>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>> engaging tech sites, Slashdot.org! >>>>>> http://sdm.link/slashdot 
>>>>>> <http://sdm.link/slashdot>
>>>>>> _______________________________________________
>>>>>> Geoserver-users mailing list
>>>>>>
>>>>>> Please make sure you read the following two resources before posting to 
>>>>>> this list:
>>>>>> - Earning your support instead of buying it, but Ian Turton: >>>>>> 
>>>>>> http://www.ianturton.com/talks/foss4g.html#/ 
>>>>>> <http://www.ianturton.com/talks/foss4g.html#/>
>>>>>> - The GeoServer user list posting guidelines: >>>>>> 
>>>>>> http://geoserver.org/comm/userlist-guidelines.html 
>>>>>> <http://geoserver.org/comm/userlist-guidelines.html>
>>>>>>
>>>>>> If you want to request a feature or an improvement, also see this: 
>>>>>> >>>>>> 
>>>>>> https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
>>>>>>  
>>>>>> <https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer>
>>>>>>
>>>>>>
>>>>>> [email protected] 
>>>>>> <mailto:[email protected]>
>>>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users 
>>>>>> <https://lists.sourceforge.net/lists/listinfo/geoserver-users>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>>
>>>>> Regards,Andrea Aime==GeoServer Professional Services from the experts! 
>>>>> Visit >>>>> http://goo.gl/it488V <http://goo.gl/it488V>>>>>>  for more 
>>>>> information.==Ing. Andrea Aime @geowolfTechnical LeadGeoSolutions 
>>>>> S.A.S.Via di Montramito 3/A55054  Massarosa (LU)phone: +39 0584 
>>>>> 962313fax: +39 0584 1660272mob: +39  339 8844549>>>>> 
>>>>> http://www.geo-solutions.it <http://www.geo-solutions.it>>>>>> 
>>>>> http://twitter.com/geosolutions_it 
>>>>> <http://twitter.com/geosolutions_it>>>>>> 
>>>>> ------------------------------------------------------->>>>> Con 
>>>>> riferimento alla normativa sul trattamento dei dati personali (Reg. UE 
>>>>> 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si 
>>>>> precisa che ogni circostanza inerente alla presente email (il suo 
>>>>> contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è 
>>>>> riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il 
>>>>> messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra 
>>>>> operazione è illecita. Le sarei comunque grato se potesse darmene 
>>>>> notizia.This email is intended only for the person or entity to which it 
>>>>> is addressed and may contain information that is privileged, confidential 
>>>>> or otherwise protected from disclosure. We remind that - as provided by 
>>>>> European Regulation 2016/679 “GDPR” - copying, dissemination or use of 
>>>>> this e-mail or the information herein by anyone other than the intended 
>>>>> recipient is prohibited. If you have received this email by mistake, 
>>>>> please notify us immediately by telephone or e-mail.
>>>>>
>>>>   
>>>
>>>
>>>
>>> -- 
>>>
>>> Regards,Andrea Aime==GeoServer Professional Services from the experts! 
>>> Visit >>> http://goo.gl/it488V <http://goo.gl/it488V>>>>  for more 
>>> information.==Ing. Andrea Aime @geowolfTechnical LeadGeoSolutions S.A.S.Via 
>>> di Montramito 3/A55054  Massarosa (LU)phone: +39 0584 962313fax: +39 0584 
>>> 1660272mob: +39  339 8844549>>> http://www.geo-solutions.it 
>>> <http://www.geo-solutions.it>>>> http://twitter.com/geosolutions_it 
>>> <http://twitter.com/geosolutions_it>>>> 
>>> ------------------------------------------------------->>> Con riferimento 
>>> alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - 
>>> Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni 
>>> circostanza inerente alla presente email (il suo contenuto, gli eventuali 
>>> allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i 
>>> destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per 
>>> errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le 
>>> sarei comunque grato se potesse darmene notizia.This email is intended only 
>>> for the person or entity to which it is addressed and may contain 
>>> information that is privileged, confidential or otherwise protected from 
>>> disclosure. We remind that - as provided by European Regulation 2016/679 
>>> “GDPR” - copying, dissemination or use of this e-mail or the information 
>>> herein by anyone other than the intended recipient is prohibited. If you 
>>> have received this email by mistake, please notify us immediately by 
>>> telephone or e-mail.
>>>
>>   
>
>
>
> -- 
>
> Regards,Andrea Aime==GeoServer Professional Services from the experts! Visit 
> > http://goo.gl/it488V <http://goo.gl/it488V>>  for more information.==Ing. 
> Andrea Aime @geowolfTechnical LeadGeoSolutions S.A.S.Via di Montramito 
> 3/A55054  Massarosa (LU)phone: +39 0584 962313fax: +39 0584 1660272mob: +39  
> 339 8844549> http://www.geo-solutions.it <http://www.geo-solutions.it>> 
> http://twitter.com/geosolutions_it <http://twitter.com/geosolutions_it>> 
> -------------------------------------------------------> Con riferimento alla 
> normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento 
> generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza 
> inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) 
> è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati 
> dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a 
> cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se 
> potesse darmene notizia.This email is intended only for the person or entity 
> to which it is addressed and may contain information that is privileged, 
> confidential or otherwise protected from disclosure. We remind that - as 
> provided by European Regulation 2016/679 “GDPR” - copying, dissemination or 
> use of this e-mail or the information herein by anyone other than the 
> intended recipient is prohibited. If you have received this email by mistake, 
> please notify us immediately by telephone or e-mail.
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to