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]> 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
>
> 26. May 2018 17:08 by [email protected]:
>
>
> Hi,
> the current definition of the process only accepts a String:
>
> https://github.com/geotools/geotools/blob/865cc72a90b07841a4c871d1b07fcc
> 8e5defd35b/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]> 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
>> _______________________________________________
>> 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
>>
>>
>
>
> --
>
> Regards, Andrea Aime == GeoServer Professional Services from the experts!
> Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime
> @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054
> Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339
> 8844549 http://www.geo-solutions.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 for more information. == Ing. Andrea Aime
@geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054
Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339
8844549 http://www.geo-solutions.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