2013-07-16 2 views
0

MapFish Print를 사용하여 맵의 PDF를 생성하고, 기본 타일 용 WMS 레이어 만 사용할 때 pdf에서 맵 이미지를 생성합니다. 예상대로 작동합니다. 내가 벡터 레이어과 내에서 geoJSON 개체를 추가 할 때Mapfish 인쇄 벡터 레이어 GeoJSON 예제?

그러나, mapfish 인쇄 다음과 같은 오류가 발생합니다 :

Exception in thread "tilesReader3" java.lang.NullPointerException 
     at org.mapfish.print.map.renderers.vector.PointRenderer.renderImpl(PointRenderer.java:113) 
     at org.mapfish.print.map.renderers.vector.PointRenderer.renderImpl(PointRenderer.java:49) 
     at org.mapfish.print.map.renderers.vector.GeometriesRenderer.render(GeometriesRenderer.java:69) 
     at org.mapfish.print.map.renderers.vector.FeaturesRenderer$FeatureRenderer.renderImpl(FeaturesRenderer.java:62) 
     at org.mapfish.print.map.renderers.vector.FeaturesRenderer$FeatureRenderer.renderImpl(FeaturesRenderer.java:58) 
     at org.mapfish.print.map.renderers.vector.FeaturesRenderer.render(FeaturesRenderer.java:53) 
     at org.mapfish.print.map.renderers.vector.FeaturesRenderer$FeatureCollectionRenderer.renderImpl(FeaturesRenderer.java:70) 
     at org.mapfish.print.map.renderers.vector.FeaturesRenderer$FeatureCollectionRenderer.renderImpl(FeaturesRenderer.java:67) 
     at org.mapfish.print.map.renderers.vector.FeaturesRenderer.render(FeaturesRenderer.java:53) 
     at org.mapfish.print.map.readers.VectorMapReader$1.renderOnPdf(VectorMapReader.java:85) 
     at org.mapfish.print.map.ParallelMapTileLoader.handle(ParallelMapTileLoader.java:97) 
     at org.mapfish.print.map.ParallelMapTileLoader.handle(ParallelMapTileLoader.java:41) 
     at org.pvalsecc.concurrent.OrderedResultsExecutor.addOutput(OrderedResultsExecutor.java:148) 
     at org.pvalsecc.concurrent.OrderedResultsExecutor.access$600(OrderedResultsExecutor.java:23) 
     at org.pvalsecc.concurrent.OrderedResultsExecutor$Runner.run(OrderedResultsExecutor.java:181) 
     at java.lang.Thread.run(Unknown Source) 
내가 인쇄를 Mapfish을 보내고

내 쿼리는 기본의 약간 수정 된 버전입니다

  { 
      layout: 'A4 portrait', 
      title: 'A simple example', 
      srs: 'EPSG:4326', 
      units: 'dd', 
      outputFilename: 'mapfish-print', 
      outputFormat: 'pdf', 
      layers: [ 
       { 
        type: 'WMS', 
        format: 'image/png', 
        layers: ['OSM-GB:__all__'], 
        baseURL: 'http://www.osmgb.org.uk/ogc/wms' 
       }, 
       { 
        type: 'Vector', 
        geoJson: { 
         "type": "FeatureCollection", 
         "features": [ 
          { 
           "type": "Feature", 
           "geometry": { 
            "type": "Point", 
            "coordinates": [ 
             -0.0996621, 
             51.5059247 
            ] 
           }, 
           "properties": { 
           } 
          }, 
          { 
           "type": "Feature", 
           "geometry": { 
            "type": "Point", 
            "coordinates": [ 
             -0.099332, 
             51.5072000 
            ] 
           }, 
           "properties": { 
           } 
          }, 
          { 
           "type": "Feature", 
           "geometry": { 
            "type": "Point", 
            "coordinates": [ 
             -0.0945508, 
             51.50240484 
            ] 
           }, 
           "properties": { 
           } 
          } 
         ] 
        } 
       } 
      ], 
      pages: [ 
       { 
        center: [0.09, 51.50], 
        scale: 4000000, 
        dpi: 190, 
        mapTitle: "First map", 
        comment: "The \"routes\" layer is not shown (the scale is too small)", 
        data: [ 
         {id:1, name: 'blah', icon: 'icon_pan'}, 
         {id:2, name: 'blip', icon: 'icon_zoomin'} 
        ] 
       }, 
       { 
        center: [0.09, 51.50], 
        scale: 500000, 
        dpi: 190, 
        mapTitle: "Second map", 
        comment: "This is a zoomed in version of the first map. Since the scale is more appropriate, we show the \"routes\" layer.", 
        data: [ 
         {id:1, name: 'blah', icon: 'icon_pan'}, 
         {id:2, name: 'blip', icon: 'icon_zoomin'} 
        ] 
       } 
      ] 
      } 

GeoJSON 단지 미세한 geojsonlint.com을 확인하고 표시 다음과 같이 샘플에 첨가 벡터 층 (예가 다운 기본값으로 다른 WMS를 사용). 메기 피쉬 프린트의 출처를 조사한 결과 정확히 이것이 왜 발생하는지 알 수 없습니다. 스타일과 관련이있는 것 같지만,이 문제를 해결하기위한 요청에 행운을 추가하지 않았습니다.

- 업데이트 :

이제까지 다른 사람이 문제에 걸쳐 온다면, 문제는 (미등록), 당신은 벡터 레이어, 스타일의 집합 내에서 정의하고에 확인 각 기능을해야 할 것이 었습니다 geoJSON은 스타일을 사용합니다.

답변

0

문제는 (문서화되지 않음), 벡터 레이어 내에서 스타일 및 스타일 속성 세트를 정의하고 geoJSON의 각 기능이 스타일을 사용해야한다는 것입니다.

많은 스타일의 태그가 이름이 변경되었지만 스타일 자체는 SVG 스타일이므로 fill-color가 아닌 fillColor입니다.

조금 더 자세히 여기를 참조하십시오 : http://www.mapfish.org/doc/print/protocol.html#layers-params

관련 문제