Michael,

the append_style method expects a Style in second parameter and you pass a Rule. You must create a Style and append the Rule in the Style rules list.

See the code below...



import mapnik2

m = mapnik2.Map( 100, 100 )

dotsymbolizer = mapnik2.PointSymbolizer( mapnik2.PathExpression( 'dots/purpledot.png' ) )
dotsymbolizer.allow_overlap = True
dotsymbolizer.opacity = 0.5

# Rule
partnerdotrule = mapnik2.Rule( )
partnerdotrule.symbols.append( dotsymbolizer )

# Style
partnerdotstyle = mapnik2.Style( )
# Append the rule in the rules list.
partnerdotstyle.rules.append( partnerdotrule )

m.append_style('Partner Dot Style',partnerdotstyle )



Bruno Caponi

[email protected] escreveu: -----

Para: [email protected]
De: Michael Corey <[email protected]>
Enviado por: [email protected]
Data: 11/11/2011 12:06AM
Assunto: Re: [Mapnik-users] Point Symbolizer mystery

Hi Bruno, and thanks for your help.

I got my original error cleared using your help, but did something also change about appending point styles to the map?

dotsymbolizer = mapnik2.PointSymbolizer(mapnik2.PathExpression( 'dots/purpledot.png'))
dotsymbolizer.allow_overlap = True
dotsymbolizer.opacity = 0.5

partnerdotstyle = mapnik2.Rule()
partnerdotstyle.symbols.append(dotsymbolizer)

m.append_style('Partner Dot Style',partnerdotstyle)

Results in:

  File "partnermapnikbasic.py", line 59, in <module>
    m.append_style('Partner Dot Style',partnerdotstyle)
Boost.Python.ArgumentError: Python argument types in
    Map.append_style(Map, str, Rule)
did not match C++ signature:
    append_style(mapnik::Map {lvalue}, std::string style_name, mapnik::feature_type_style style_object)

I don't see what I'm missing. (line 59 is the m.append_style line)

Thanks,
Michael Corey
Digital Innovations Editor
Center for Investigative Reporting
510.809.3178

On 11/4/11 3:45 AM, Bruno B Caponi wrote:
... and the first parameter is a PathExpression:

mapnik2.PointSymbolizer(mapnik2.PathExpression( '/Users/semchie/Documents/GIS/dots/purpledot.png' ) )...

Bruno Caponi

[email protected] escreveu: -----

Para: [email protected]
De: Bruno B Caponi <[email protected]>
Enviado por: [email protected]
Data: 04/11/2011 08:26AM
Assunto: Re: [Mapnik-users] Point Symbolizer mystery

Michael,

constructor of PointSymbolizer in Mapnik 2.0 no longer has the parameters "type", "width", "height".

See this page for other changes.

Bruno Caponi


[email protected] escreveu: -----

Para: [email protected]
De: Michael Corey <[email protected]>
Enviado por: [email protected]
Data: 03/11/2011 06:44PM
Assunto: [Mapnik-users] Point Symbolizer mystery

Hi all:

I'm running mapnik2, and doing find, until I try to add a
PointSymbolizer in Python.

dotsymbolizer =
mapnik2.PointSymbolizer('/Users/semchie/Documents/GIS/dots/purpledot.png',
'png', 16, 16)
dotsymbolizer.allow_overlap = True
dotsymbolizer.opacity = 0.5

partnerdotstyle = mapnik2.Rule()
partnerdotstyle.symbols.append(dotsymbolizer)

When I run the script, I get:

Traceback (most recent call last):
   File "mapnikgridtest.py", line 48, in <module>
     dotsymbolizer = mapnik2.PointSymbolizer('/purpledot.png', 'png',
16, 16)
Boost.Python.ArgumentError: Python argument types in
     PointSymbolizer.__init__(PointSymbolizer, str, str, int, int)
did not match C++ signature:
     __init__(_object*,
boost::shared_ptr<std::vector<boost::variant<std::string,
mapnik::attribute, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>,
std::allocator<boost::variant<std::string, mapnik::attribute,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_> > > >)
     __init__(_object*)

Am I missing something silly?

Thanks,

--
Michael Corey
Digital Innovations Editor
Center for Investigative Reporting
510.809.3178

_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users

_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users



_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users
_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users

_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users

Reply via email to