Sweet. Glad I could help Steve
2012/4/21 Imóveis Nacionais <[email protected]> > great, it works! just if(!firsttime) must be replaced by if(firsttime) ;-) > thanks a lot > alex > > On 4/21/12, Steve Nelson <[email protected]> wrote: > > Dragging is a tiny bit more complex, but the logic is essentially the > same. > > This is totally untested, but maybe it'll get you going in the right > > direction. I added some inline comments. Give it a whirl. > > > > > > var firstClickMercator; > > OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { > > > > defaultHandlerOptions: { > > 'single': true, > > 'double': false, > > 'pixelTolerance': 0, > > 'stopSingle': false, > > 'stopDouble': false > > }, > > handleRightClicks:true, > > initialize: function(options) { > > this.handlerOptions = OpenLayers.Util.extend( > > {}, this.defaultHandlerOptions > > ); > > OpenLayers.Control.prototype.initialize.apply( > > this, arguments > > ); > > this.handler = new OpenLayers.Handler.Click( > > this, { > > 'click': this.singleClick > > }, this.handlerOptions > > ); > > }, > > singleClick: function(e) { > > //You want to convert the xy coordinate in the e variable to a LonLat > > var clickLonLat=map.getLonLatFromPixel(e.xy) > > //Projections confuse the hell out of me. But what I've learned is you > > probably want to transform to a Mercator projection > > var > clickLonLatMercator=clickLonLat.transform(map.getProjectionObject(),new > > OpenLayers.Projection("EPSG:4326")); > > if (!firstClick){ > > //If this is the first store it into a global variable: > > firstClickMercator=clickLonLatMercator > > }else{ > > //if the global variable firstClick already exists, calculate the > distance > > in KM > > var > > > distanceInKM=OpenLayers.Util.distVincenty(firstClickMercator,clickLonLatMercator) > > //you'll have to output it where you want, this should display the value > > in the google chrome console: > > console.log(distanceInKM) > > //reset the global variable to null. > > firstClick=null; > > } > > }, > > > > }); > > > > > > //Define the global map: > > var map = new OpenLayers.Map("map") > > > > //Add the click control to the map > > var click = new OpenLayers.Control.Click(); > > map.addControl(click); > > click.activate(); > > > > > > > > On Fri, Apr 20, 2012 at 10:41 AM, alexe100 > > <[email protected]>wrote: > > > >> Hi all , i am new here and in GEO* purposes... > >> I am doing a web based application where i need to show some markers, > that > >> it aldready working. > >> Now I need to give the oortunity to the user of drag a line on the map > and > >> while dragging see the distance in kms in a label box (html external > obj) > >> I saw already the openlayer example for distance but it has various > >> options > >> (and that make me confusing because i am a beginner). I did not found a > >> (very) simple example doing this. > >> Please, could you tell me how to do this. A littl example would be very > >> appreciated. > >> > >> Thanks a lot > >> > >> Alex > >> > >> -- > >> View this message in context: > >> > http://osgeo-org.1560.n6.nabble.com/Drag-Line-Distance-in-KMs-tp4902194p4902194.html > >> Sent from the OpenLayers Users mailing list archive at Nabble.com. > >> _______________________________________________ > >> Users mailing list > >> [email protected] > >> http://lists.osgeo.org/mailman/listinfo/openlayers-users > >> > > >
_______________________________________________ Users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-users
