Re: [OpenLayers-Users] Mouse stop
On Thursday, February 25, 2010, Vidal, Antoni wrote: > > > > > > > > > > > > > > Hello, > > > > I need to detect when mouse stops, witch event I have to > register? Have you see the hover-handler.html example? Cheers, -- Eric Lemoine Camptocamp France SAS Savoie Technolac, BP 352 73377 Le Bourget du Lac, Cedex Tel : 00 33 4 79 44 44 96 Mail : eric.lemo...@camptocamp.com http://www.camptocamp.com ___ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users
Re: [OpenLayers-Users] Mouse stop
Oops, as I tried to say: I came across this problem a while ago, and came up with something like this (as was outlined by Shawn) MouseOver = OpenLayers.Class({ ᅵᅵᅵ map: null, ᅵᅵᅵ timer: null,ᅵᅵᅵ ᅵᅵᅵ prevXY: null, ᅵᅵᅵ ᅵᅵᅵ /** ᅵᅵᅵᅵ * ᅵᅵᅵᅵ * ᅵᅵᅵᅵ * @param map the map ᅵᅵᅵᅵ * @param options options ᅵᅵᅵᅵ */ ᅵᅵᅵ initialize: function(map, options) { ᅵᅵᅵᅵᅵᅵᅵ OpenLayers.Util.extend(this, options); ᅵᅵᅵᅵᅵᅵᅵ this.map = map; ᅵᅵᅵ }, ᅵᅵᅵ /** ᅵᅵᅵᅵ * ᅵᅵᅵᅵ */ ᅵᅵᅵ activate: function () { ᅵᅵᅵᅵᅵᅵᅵ if (this.active) { ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ return false; ᅵᅵᅵᅵᅵᅵᅵ } ᅵᅵᅵᅵᅵᅵᅵ this.map.events.register("mousemove", this, this.mouseMoveListener); ᅵᅵᅵᅵᅵᅵᅵ this.active = true; ᅵᅵᅵᅵᅵᅵᅵ return true; ᅵᅵᅵ }, ᅵᅵᅵ /** ᅵᅵᅵᅵ * ᅵᅵᅵᅵ */ ᅵᅵᅵ deactivate: function (notremove) { ᅵᅵᅵᅵᅵᅵᅵ if (!notremove) { ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ this.removePopups(); ᅵᅵᅵᅵᅵᅵᅵ } ᅵᅵᅵᅵᅵᅵᅵ if (this.active) { ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ this.map.events.unregister("mousemove", this, this.mouseMoveListener); ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ this.active = false; ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ return true; ᅵᅵᅵᅵᅵᅵᅵ } ᅵᅵᅵᅵᅵᅵᅵ return false; ᅵᅵᅵ }, ᅵᅵᅵ /** ᅵᅵᅵᅵ * ᅵᅵᅵᅵ * Listens for mouse movements, and uses timers to detect a "mouse stop event" ᅵᅵᅵᅵ * ᅵᅵᅵᅵ * @param evt ᅵᅵᅵᅵ */ ᅵᅵᅵ mouseMoveListener: function(evt) { ᅵᅵᅵᅵᅵᅵᅵ //disable if shiftKey is presses (as we do not want to interfere with zooming) ᅵᅵᅵᅵᅵᅵᅵ if (!evt.shiftKey) { ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ if (this.timer) { ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ clearTimeout(this.timer); ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ } ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ that = this; ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ this.sleep(100, function () { ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ this.timer = null; ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ that.mouseStop(evt); ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ }); ᅵᅵᅵᅵᅵᅵᅵ } ᅵᅵᅵ }, ᅵᅵᅵ /** ᅵᅵᅵᅵ * sleeps (used to detect mouse stops) ᅵᅵᅵᅵ * ᅵᅵᅵᅵ * @param ms millisecs to sleep ᅵᅵᅵᅵ * @param callback callback function ᅵᅵᅵᅵ */ ᅵᅵᅵ sleep: function (ms, callback) { ᅵᅵᅵᅵᅵᅵᅵ this.timer = setTimeout(callback, ms); ᅵᅵᅵ }, ᅵᅵᅵ /** ᅵᅵᅵᅵ * ᅵᅵᅵᅵ * Handles the "mouse stop event" ᅵᅵᅵᅵ * ᅵᅵᅵᅵ * @param evt the event (actually a mousemove event ᅵᅵᅵᅵ */ ᅵᅵᅵ mouseStop: function(evt) { ᅵᅵᅵᅵᅵᅵᅵ //stupid check because IE does not handle mousemove correctly (or i f*** things up) ᅵᅵᅵᅵᅵᅵᅵ if (this.prevXY) { ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ if (evt.xy.x != this.prevXY.x && evt.xy.y != this.prevXY.y) { ᅵᅵᅵ ᅵᅵᅵ //get the position we stopped at, and current map scale ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ var pos = this.map.getLonLatFromPixel(evt.xy); ᅵᅵᅵ ᅵᅵᅵ var scale = this.map.getScale(); ᅵᅵᅵ ᅵᅵᅵ console.log("mouse stopped at " + pos.toString() + ", scale = " + scale.toString()); ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ } ᅵᅵᅵᅵᅵᅵᅵ } ᅵᅵᅵᅵᅵᅵᅵ //update this so that the check for if we actually have moved between two mouse stops works ᅵᅵᅵᅵᅵᅵᅵ //f*** ie! ᅵᅵᅵᅵᅵᅵᅵ this.prevXY = evt.xy; ᅵᅵᅵ } }); On 02/25/2010 04:19 PM, Sveen Atle Frenvik (Geomatikk IKT) wrote: REMOVED_BY_THE_EXCHANGE_EMAIL_SCANNING_SERVICE_008BC5E7_55E9F026D00 GUID::= 695731b2-611a-4e58-847c-ac52466d2628 PATH::= !CRYPT!840D757A8080D0C76A26FF81F3FA70208F6A98816EB00D12DB336E0E9CCCAFD62668D88A1AD46A6A8FC2A126F4F9B166A5C3D60A992565F4A7A65F24E2C229CDD2D32107744!84073BA692635189B9E1EB87F821836BC06D0663E3042BDD857008A3FBAE037649B6848CB28DD632798FA6CFB4288F0B6C003C8299803A022B95E1338DC6BC196B93D1A0746!84079C28BD1DCE1D04C4F0751E1A4393044A085499E9351764FC37C335DD7FC8CD50D56FA3B88F70DC2396BEA9F78B7A8B0D82273E7F88899DA38618626B298DA104E687648!840C88983C6599DB209E6D3F6FC0F741086A4841236840ACC3177236D83C5D1BFA3E4B30FB51FA0A64C113CA14ED3E2AE3581F69C0E8DB217184FEF2849388AD90D4015763F!84021F62F7265D89AD27638E600989B2A9130AE119C3309D33CD1BFB5F0EF09D69412414EC78FE17C420C9603F09599DDE2F3F32B069991C145EFDA5E4521806F73496D0044!840FE51F8438A8EC288F84D2F5D180C864243F38C17FDB9FF16C3C41CEE7CCD8DAD099C66879732195F94BF6AC3BFDEFFBECCFFFDAF201C4A2A034DE03E0D48C1783F170935!840B110B5D768BBCAFC47E1A151E709AC93EA7D02FEFD7B1FC507B6CA9D38E073B5748E439D3BBB652CFB36344F7468E0D01F1817D7BA0209A0446DCC78A3B1025C4B68 7149!8401485F8997099CE185BCD36FA69B474B6136BE63184F94571104FD2B6CE8D310B44779EDE14EA43BABB275E84BBF4113C878B9DF2D60360B46EC0738
Re: [OpenLayers-Users] Mouse stop
REMOVED_BY_THE_EXCHANGE_EMAIL_SCANNING_SERVICE_008BC5E7_55E9F026D00 GUID::= 695731b2-611a-4e58-847c-ac52466d2628 PATH::= !CRYPT!840D757A8080D0C76A26FF81F3FA70208F6A98816EB00D12DB336E0E9CCCAFD62668D88A1AD46A6A8FC2A126F4F9B166A5C3D60A992565F4A7A65F24E2C229CDD2D32107744!84073BA692635189B9E1EB87F821836BC06D0663E3042BDD857008A3FBAE037649B6848CB28DD632798FA6CFB4288F0B6C003C8299803A022B95E1338DC6BC196B93D1A0746!84079C28BD1DCE1D04C4F0751E1A4393044A085499E9351764FC37C335DD7FC8CD50D56FA3B88F70DC2396BEA9F78B7A8B0D82273E7F88899DA38618626B298DA104E687648!840C88983C6599DB209E6D3F6FC0F741086A4841236840ACC3177236D83C5D1BFA3E4B30FB51FA0A64C113CA14ED3E2AE3581F69C0E8DB217184FEF2849388AD90D4015763F!84021F62F7265D89AD27638E600989B2A9130AE119C3309D33CD1BFB5F0EF09D69412414EC78FE17C420C9603F09599DDE2F3F32B069991C145EFDA5E4521806F73496D0044!840FE51F8438A8EC288F84D2F5D180C864243F38C17FDB9FF16C3C41CEE7CCD8DAD099C66879732195F94BF6AC3BFDEFFBECCFFFDAF201C4A2A034DE03E0D48C1783F170935!840B110B5D768BBCAFC47E1A151E709AC93EA7D02FEFD7B1FC507B6CA9D38E073B5748E439D3BBB652CFB36344F7468E0D01F1817D7BA0209A0446DCC78A3B1025C4B687149!8401485F8997099CE185BCD36FA69B474B6136BE63184F94571104FD2B6CE8D310B44779EDE14EA43BABB275E84BBF4113C878B9DF2D60360B46EC0738396EAC37243130945!840D7BC44E8BDFEE5A974107084E47A67A1E0687D66B2379E995B353D765F41BD79B80ACCD697536D392A821B22B0A5F3048600267CB720330F1AE55EF9A403E56B3E157537!8406EB65460ABF46FD445E90CD4DF01D7CD2F02B7BB3ABC00E7AE39CF94322E6D81CF562B8C8855E6ACC5EEA57A8992CA315C8089B9556F98365529A57508DDBD544815073A!840492F22B359B1C2194DB19087736E14B37C12728A9DB7F53BBFD4AA3E5EE55D36492EE6E250946926D029BF1D9C267EDE7D9EE21CE3347BAD221910D7EA1DBA9B366A7940!8405CF0A28882526B8EE6F609434D551BFA71F6BB406FCD0B252880EF7F4AC9D9158A2F6E8D10634941557FD5EB3951EEA18E06664F8AA8C080C3B20B0925C774714B6B0834!840D70E7F6837F02D27ED8E396D2CE1524B5ED478B2A812F1A3F7E4B9A5E078BDFF935D574DB1A6821E277C116A3951F4A01DD73ACD8F2DEDFA16DD76173E21A39F3C687C4C!84008084EFEF1442AD8EB4888FDA019E82637A99D25A1E59450A6876E4F0D9BE782A1D091A4CBD8F56627727F044A512BFE3BE3CBB7538F0C48602B4204051D4A0B40140B3D!840EB7398D97EE91F0DEC2386B9E7F9A8FBDBF8A9972EB6E5E33D2B0D00FFC19FC97C14480585402F0A227934A928D37374B774D7D324351D4DB16D2BD41668DB354D690B3B!840F09CA8A241BBE38AFB7E10F9D8E2D18D65071C26347BCAEA7505E0C16F5F3D9AA6B009C9BB58FE00A65E4F2F7013ECDDAD0053F3DA8D696FCE774C0EDA2D15E63264083E!8401D5362048ADEF157DC7CE38E02B0CC680EC79B8F4379D0A87A273F500A39B7909D99FE994090AB6BB74F0D6407F22F51777EE17F1E037B50FC847D721B53D24C451D0831!8406AE580CB3A1E056C2BA0C3A6B6F1B8DE4ABF43BADFFF89E3E2CD96B90AB397F021C4FCAA50B15A70632818568756A0C930A9C7C35CEDF4F1F9AA2982F2246AF449177C36!840A7317CA042FB4CF7963271DE489759C269DF067E45F4D9CE7D189A1BA6398444CE92659DE313030B2057E3AC8FCB5EF74595A378E917735D85CD2D28AE003B463E1F7D36!8403C0ECC30F40C9ED55FCA482FF0F16ACC7A58AF9C9FD378C85EF939258FC75AB0F64458CBBE50129E15BE859A90BCC492F87E0513510EA7B109CA09F308B9BB793D157D4D!840EF791CD9D532D21EEACBFD9E2EBCBE77F005E5D54E986ADD423366EC3EAA6F67414892C94C0650009326D462120C8D7D38759E1CD198D70CF576593C3FF052BF42187D40!840E6E90B3A1D97C3202E3D6A065C55C16FF2F8ADC8231A5C4C529BE3174FDAD9C706A33957303F33C6597AB20EC32C5C7909F5C93933210B8630835B9223202CB94E1A7031!8405A47C9791D5118B4C3A71331538B855DF6AB50066C467602F8591B2E490F6C90F7ABDEC0B072CFCF4A4650318C3FDDD7E23280199FC87B2F44596FF382E9D40332647049!84042F582944360A1FAD79B881CE77F941D4E3DC975A76EF191C4CF6B09299AED9FA56B06B4ECA7BD6A85712054BEF78660E2436DA7E3246762B19DA8D5F95C23374A667139!527CC25016465748671468B7C326E84A776EC01CF562F7A0DE27FC5630C4ED73083984B0C706A7707B00B554408 FILENAME::= TYPE::= text/html CHARSET::= iso-8859-15 REASON::= PROFANITY SERVER::= TD-VIRT-EX-01 END::= REMOVED_BY_THE_EXCHANGE_EMAIL_SCANNING_SERVICE_008BC5E7_55E9F026D00 A policy violated content was detected and removed from the original mail entity. You can safely save or delete this replacement attachment. ___ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users
Re: [OpenLayers-Users] Mouse stop
mousemove would probably what you will want to tie into and then set a timeout on it which would get reset each time mousemove gets fired. When the timeout gets fired, it should call your mousestop even. Play with the timeout value until you are happy with the amount of time it waits before considering it a 'mouse stop'. Shawn >>> On 2/25/2010 at 8:46 AM, "Vidal, Antoni" wrote: Hello, I need to detect when mouse stops, witch event I have to register? Thank*s in advance Antoni Vidal Unitat d'Aplicacions SIG-WEB Ext. 3228 ___ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users
[OpenLayers-Users] Mouse stop
Hello, I need to detect when mouse stops, witch event I have to register? Thank's in advance Antoni Vidal Unitat d'Aplicacions SIG-WEB Ext. 3228 ___ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users