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.
>
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 [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
