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 andrea.a...@geo-solutions.it <mailto:andrea.a...@geo-solutions.it>: > 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, <> faw...@tutamail.com > <mailto:faw...@tutamail.com>> > 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> >> >> >> Geoserver-users@lists.sourceforge.net >> <mailto:Geoserver-users@lists.sourceforge.net> >> 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. >
HeatmapProcess.java
Description: Binary data
------------------------------------------------------------------------------ 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 Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users