[OpenLayers-Users] Printing Vector Layers

Michael Ryan mr at mry4n.net
Tue Apr 24 12:45:43 EDT 2012


Awesome. I should be able to run with this. Thanks, -m.

On Tue, Apr 24, 2012 at 12:42 PM, Greg Allensworth <gregor at greeninfo.org> wrote:
>> I'm using PHP to create the image. So, I'm guessing I'll be using the
>> GD Library in order to draw on the image.
>
>
> Oh, that's good. As you point out, if you can convert from map coords to
> pixels you may have what you need.
>
>
>
>> Then the trick will be to translate from the coordinate system from
>> the map to the image.  Is this a matter of using the lat/lon info of
>> the Vector features compared to a lat/lon from the map that represents
>> the origin? Or does OpenLayers provide coordinate properties for the
>> features that can be used for this purpose?
>
>
> Not directly, but it's easy to derive: Vector features have a Geometry, and
> Geometry objects have getVertices(), and Map has getPixelFromLonLat()
>
> The "location" of getVertices() varies depending on whether you're doing
> lines or polygons or multipolygons, and is irrelevant if you're doing Point
> geometries, so you may need a switch around the geometry type.
>
> But, here's some pseudocode outlining the basic idea:
>
> for (var f=layer.features) {
>   geom = feature[f].geometry;
>
>   switch (geom.CLASS_NAME) {
>
> case OpenLayers.Geometry.Point
>      p = map.getPixelFromLonLat(v.x,v.y);
>
> case OpenLayers.Geometry.LineString
>   for (var v=geom.getVertices() ) {
>      p = map.getPixelFromLonLat(v.x,v.y);
>   }
>
> case OpenLayers.Geometry.Polygon
>   for (var ring = geom.components) {
>      for (var v=ring.getVertices() ) {
>         p = map.getPixelFromLonLat(v.x,v.y);
>      }
>   }
>
>
>   } // end of geom type switch
> } // end of feature loop
>
>
> --
> Greg Allensworth, Web GIS Developer
> BS  A+  Network+  Security+  Linux+  Server+
> GreenInfo Network - Information and Mapping in the Public Interest
> 564 Market Street, Suite 510  San Francisco CA 94104
> PH: 415-979-0343 x302  FX: 415-979-0371    email: gregor at greeninfo.org
> Web: www.GreenInfo.org     www.MapsPortal.org
>
> Subscribe to MapLines, our e-newsletter, at www.GreenInfo.org


More information about the Users mailing list