Ticket #56 (new defect)

Opened 11 months ago

Last modified 2 months ago

ShieldSymbolizer on points causes 100% cpu hang

Reported by: gravitystorm Owned by: artem
Priority: normal Milestone:
Component: Core Library Version: SVN Trunk
Severity: Normal Keywords:
Cc: artem@… Patch Needs Improvement:
Needs Docmentation: Has Patch?:
Design Decision Needed:

Description

ShieldSymbolizer works fine on linestrings, but causes a hang on 100% CPU when used on points. Textsymbolizer and Pointsymbolizer work fine for the text and icon drawing resectively, but shieldsymbolizer (i.e. combining them) doesn't.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map>
<Map srs="+proj=merc +datum=WGS84  +k=1.0 +units=m +over +no_defs">

<Style name="shops">
    <Rule>
      <MaxScaleDenominator>500000000000000000000000</MaxScaleDenominator>
      <Filter>[shop]='bicycle'</Filter>
      <ShieldSymbolizer file="/home/osm/vmap/symbols/rcn_nodenet_large.png" name="shop" face_name="DejaVu Sans Book" type="png" width="23" height="23" allow_overlap="true"/>
    </Rule>
</Style>

   <Layer name="amenity" status="on" srs="+proj=merc +datum=WGS84  +k=1.0 +units=m +over +no_defs">
    <StyleName>shops</StyleName>
    <Datasource>
      <Parameter name="type">postgis</Parameter>
      <Parameter name="host">/var/run/postgresql</Parameter>
      <Parameter name="user">osm</Parameter>
      <Parameter name="dbname">gis</Parameter>
      <Parameter name="table">(select * from planet_osm_point where shop IS NOT NULL) as amenity</Parameter>
      <Parameter name="estimate_extent">true</Parameter>
    </Datasource>
   </Layer>
</Map>

using generate_image.py from openstreetmap for rendering.

rev 574

Change History

Changed 8 months ago by kleptog

I missed this one. I found the same problem and uploaded some patches in #87. It would be nice if someone familiar with the library could comment on it.

Changed 2 months ago by springmeyer

  • cc artem@… added
  • priority set to normal

Artem, have you review this issue yet?

Note: See TracTickets for help on using tickets.