I have searched google a lot for this issue, I found a lot of people have the same problem. It's better to have a general solution.
On Mon, Mar 11, 2013 at 9:12 AM, Phil Scadden <p.scad...@gns.cri.nz> wrote: > > Your bet is correct. Any tips on convert the coordinate? It's not just a >> point when you draw with openlayer, the shape can be line and polygon. >> > Well no great mystery here. After the user has drawn the object, and > before posting the data to geoserver, (eg on the featureadded event), you > just process through the list of coordinates in the geometry converting > them (eg if ln>180 then ln -=360). Much more > mysterious is management of the topology but this is a function of the > underlying database, rather than geoserver. I dont think there is a general > solution to this. > > Slightly more general code is: > where geom is the geometry to convert and extent is generally > baseLayer.maxExtent > function wrapDateline(geom,extent) { > for (var i=0, len=geom.components.length; i<len; i++) { > var component = geom.components[i]; > for (var j=0, lenj=component.components.**length; j<lenj; j++) { > var pt = component.components[j]; > while (pt.x < extent.left) { > pt.x += extent.getWidth(); > } > > //shift left? > while (pt.x > extent.right) { > pt.x -= extent.getWidth(); > } > } > > } > geom.bounds = null; > return geom; > > } > > > Notice: This email and any attachments are confidential. > If received in error please destroy and immediately notify us. > Do not copy or disclose the contents. > >
_______________________________________________ Users mailing list us...@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/openlayers-users