Hi Martin,
You are right the problem is was trying to avoid only exists when you actually are questioning the objects for instance using ObjectInfo() etc. Thanks for clarifying this ! Peter ------------------------------------------------------------------------------------------------ Peter Horsb�ll M�ller, GIS Udviklingskonsulent / GIS-Developer Kampsax A/S - GIS Software & Solutions Rugaardsvej 55, 5000 Odense, DK tel: +45 6313 5013, dir:+45 6313 5008, fax: +45 6313 5090 mailto:[EMAIL PROTECTED] www.kampsax-gis.dk and www.kampsax.dk Authorized MapInfo Partner & Distributor in Denmark and Norway. ------------------------------------------------------------------------------------------------ Se mere om Dansk MapInfo Brugerkonference p� http://www.kampsax-gis.dk/Default.asp?ID=296 Klik ind p� http://www.kortal.dk og se det hele lidt fra oven! Check http://www.kortal.dk and have a look at Denmark from above! Martin Roundill <Martin.Roundill@waitaker Til: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>, e.govt.nz> [EMAIL PROTECTED] cc: [EMAIL PROTECTED] 02-08-2002 09:19 Vedr.: RE: MI-L MB - Select with object variables Hi Peter, You would not need to use the "Select * From s_Layer Where OBJ Into EXISTING__OBJ NoSelect" query as your second statement will only return records that have objects associated with them therefore making the above clause redundant. Cheers Martin -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Friday, 02 August 2002 18:22 To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: RE: MI-L MB - Select with object variables Hi Peter, Here is my version of your IsLayerVisible() **************************************************************************** ********* Function LayerIsVisible(ByVal WinID as integer, ByVal s_Layer as string) as logical Dim Mx1, Mx2, My1, My2 as float, o_Rectangle as object LayerIsVisible = FALSE '**I have added the Set Coordsys syntax Set CoordSys Window WinID Mx1 = MapperInfo(WinID, MAPPER_INFO_MINX) My1 = MapperInfo(WinID, MAPPER_INFO_MINY) Mx2 = MapperInfo(WinID, MAPPER_INFO_MAXX) My2 = MapperInfo(WinID, MAPPER_INFO_MAXY) Create Rect Into Variable o_Rectangle (Mx1, My1) (Mx2, My2) '**If you are not sure whether you might have records without '**objects you might be interested in starting with this SQL Select * From s_Layer Where OBJ Into EXISTING__OBJ NoSelect '**If you use the SQL above change the s_Layer to EXISTING__OBJ '**Selection objects from current layers within current vindow area Select * From s_Layer Where OBJ Intersects o_Rectangle Into VISIBLE__OBJ NoSelect If TableInfo("VISIBLE__OBJ", TAB_INFO_NROWS) > 0 then LayerIsVisible = TRUE end if End Function **************************************************************************** ********* You might also move the extraction of the coordinates and the creation of your o_Rectangle on level up, so that you only have to create this object once for every Map window. You can then send the object to the LayerIsVisible procedure as a parameter in stead of the window id. HTH, Peter ---------------------------------------------------------------------------- -------------------- Peter Horsb�ll M�ller, GIS Udviklingskonsulent / GIS-Developer Kampsax A/S - GIS Software & Solutions Rugaardsvej 55, 5000 Odense, DK tel: +45 6313 5013, dir:+45 6313 5008, fax: +45 6313 5090 mailto:[EMAIL PROTECTED] www.kampsax-gis.dk and www.kampsax.dk Authorized MapInfo Partner & Distributor in Denmark and Norway. ---------------------------------------------------------------------------- -------------------- Se mere om Dansk MapInfo Brugerkonference p� http://www.kampsax-gis.dk/Default.asp?ID=296 Klik ind p� http://www.kortal.dk og se det hele lidt fra oven! Check http://www.kortal.dk and have a look at Denmark from above! ----- Videresendt af Peter M�ller/Kampsax - 02-08-2002 08:11 ----- "Peter Zyczynski" Til: <[EMAIL PROTECTED]> <peterz@insightg cc: is.com.au> Vedr.: MI-L MB - Select with object variables 02-08-2002 03:52 Besvar venligst til peterz Hi all, I'm after some ideas. I have about 40 tables of bus routes open in a single mapper window, some are within view, some are not. Out of the 40 layers I need to determine which ones are actually visible in the current mapper. Any ideas greatly appreciated. MY ATTEMPT: ------------ I was thinking of creating a rectangle the size of the mapper window into an object variable, and then running a query to see if my table intersects the object variable - but it don't work - I don't even get an error message! Reason for using an object variable was to optimise speed - I'm gona be evaluating a lot of workspaces with a lot layers. Here's the failed attempt code: -------------------------------- Declare Sub Main Declare Function LayerIsVisible ( ByVal WinID as integer, ByVal s_Layer as string ) as logical -------------------------------- Sub Main Dim i, WinID as integer, s_Layer as string Print chr$(12) WinID = FrontWindow() for i = 1 to MapperInfo(WinID, MAPPER_INFO_LAYERS) s_Layer = LayerInfo(WinID, i, LAYER_INFO_NAME) If LayerIsVisible(WinID, s_Layer) then Print s_Layer End if next End Sub -------------------------------- Function LayerIsVisible( ByVal WinID as integer, ByVal s_Layer as string ) as logical Dim Mx1, Mx2, My1, My2 as float, o_Rectangle as object LayerIsVisible = FALSE Mx1 = MapperInfo(WinID, MAPPER_INFO_MINX) My1 = MapperInfo(WinID, MAPPER_INFO_MINY) Mx2 = MapperInfo(WinID, MAPPER_INFO_MAXX) My2 = MapperInfo(WinID, MAPPER_INFO_MAXY) Create Rect Into Variable o_Rectangle (Mx1, My1) (Mx2, My2) '*** The following bit must be wrong because '*** it never evaluates to true. If s_Layer intersects o_Rectangle then LayerIsVisible = TRUE end if End Function -------------------------------- Peter Zyczynski Analyst Programmer Insight GIS Australia Ph: (03) 6244-7344 Fax: (03) 6244-7028 [EMAIL PROTECTED] www.insightgis.com.au --------------------------------------------------------------------- List hosting provided by Directions Magazine | www.directionsmag.com | To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Message number: 2331 --------------------------------------------------------------------- List hosting provided by Directions Magazine | www.directionsmag.com | To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Message number: 2336 Note: This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this message in error, please immediately delete it and all copies of it from your system, destroy any hard copies of it and notify the sender. You must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message if you are not the intended recipient. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorised to state them to be the views of any such entity. Thank You. http://www.waitakere.govt.nz --------------------------------------------------------------------- List hosting provided by Directions Magazine | www.directionsmag.com | To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Message number: 2345
