Re: [MI-L] How to find the Centre-of-Gravity of a Region

2006-10-15 Thread Phil Waight



I have a definition of 3 polygon 
centroidtypes here (shifted centroid, 
geometric centroid, visual centroid):
http://www.spatialprojects.com.au/spatialsql_centroids.htm

Some more examples and some rules to determine the 
best choice of centroid for labelling, including calculation of the principal 
axis for alignment:

http://www.spatialprojects.com.au/spatialsql_smartprops.htm


The region geometric properties functions are 
free-use and available from a button pad:
http://www.spatialprojects.com.au/spatialsql.htm?exptag=exp2

http://www.spatialprojects.com.au/spatialsql_doc/FNPAD_geom_props.htm

The primary use of the alternative centroids noted 
in spatialSQL is to find valid alternative points for labelling. As can be seen 
in the examples the choice of one type only would not produce the best 
results.Allcomputed values are stored incolumns in 
thetarget table.

There are application areas where the geometric 
centroid or visual centroid could be of use in their own right. The visual 
centroid is computed with an outputradius of the "largest circle 
tofit"and thus could be used in an SQL to determine that a chosen 
polygon and v. centroid satisfy a "minimum distance to neighbour" criteria 
(habitat?, agriculture?)

Regards,
Phil Waight.

___Email : [EMAIL PROTECTED] 
Web: www.spatialprojects.com.au 
Skype: PhilWaight

  - Original Message - 
  From: 
  Marsh, Stephen 
  To: mapinfo-l@lists.directionsmag.com 
  
  Cc: Obregon, Alejandro 
  Sent: Thursday, October 12, 2006 11:22 
  PM
  Subject: [MI-L] How to find the 
  "Centre-of-Gravity" of a Region
  
  
  HI All,
  
  Does anybody know how to find the 
  “Centre-of-Gravity” of a region using MapInfo? The centriod location is based 
  on the ‘Minimum Bounds Rectangle’ approach, so the centriod location is not 
  the centre-of-gravity of the region. Also, the centriod can be moved for 
  presentation purposes etc. This means that the coordinate extractor tool does 
  not work for my purposes.
  
  Any help in this matter will be 
  greatly appreciated!!
  
  Many thanks,
  
  Stephen
  =NOTICE 
  - This communication may contain confidential and privileged information 
  that is for the sole use of the intended recipient. Any viewing,copying or 
  distribution of, or reliance on this message by unintendedrecipients is 
  strictly prohibited. If you have received this message inerror, please 
  notify us immediately by replying to the message and deletingit from your 
  computer.= 
  
  

  ___MapInfo-L mailing 
  listMapInfo-L@lists.directionsmag.comhttp://www.directionsmag.com/mailman/listinfo/mapinfo-l
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


Re: [MI-L] Complex SQL Joins

2006-09-01 Thread Phil Waight



A suggestion:

Rather than having to create columns of the correct 
data type for a particular query and then update them with the particular 
_expression_, create a permanent dummy column in the base tables, say MIJ as 
logical data type (or something small).

Then ...

Select ... from tab1, tab2 where 
tab1.mij=tab2.mij and tab1.fld1=tab2.fl1 + tab2.fld2 


The dummy columns and _expression_ will then always 
overcome the "no join specified..." problem (which appears to be an artifact of 
an early design decision - performance?).

Don't index mij as the extra i/o in checking the 
index is just overhead in this case.

-

I do like MapInfo's SQL. Just found recently for 
those wishing to squeeze the last bit of performance (or functionality), that an 
SQL such as:

Select ... from tab1[,tab2] where  and 
cust_function(acol1,acol2,..) 

can have cust_function as external (DLL-resident). 
Also, (as is stated in the MB manual) cust_function can replace standard 
functions such as cos, abs etc.

So if you had quite a bit of logic in cust_function 
or prefer to write in something other than MapBasic when you have a choice, 
write cust_function in c, Delphi or similar. In combination with MITAB library, 
would be possible to pass rowid's and read and process objects as part of the 
comparison. Using some of the ideas here (http://www.spatialprojects.com.au/spatialsql_custfns.htm, 
esp pt 8.) , it may be possible to update tab1 or tab2 (or another tab on the 
fly). "may be" because I know its possible to update tab1,tab2 within MapBasic, 
but not sure if an external update operation on the same table would work - 
havent tested that yet. If the SQL was prefaced with a save, it most likely 
would workas the MI select is only reading, so no transaction files would 
exist.

-

Dreams:

Now what would be nice is a statement to attach the MapBasic window to the 
address space ofone (or more!)particular (dormant) MB app with all 
the declarations (and possibly code)and then write SQLs such as the one 
above in MapInfo Pro.

eg. Someone writes a nice "IsParallel(l1obj,l2obj)" 
function for 2 lines, which could be declared in an app and accessed from 
anyMI Pro SQL.

Great opportunity for commercial MB authorsOR 
a MapInfo community (wiki)app could receive those hidden gems accumulated 
over the last 15 yrs and trapped in purpose-built apps. I suggest this would 
increase the power of MapInfo SQL n-fold in a short space of time. Also, some 
major new features in basic functions in MI Pro might shift all those users who 
are sitting on "the last really useful update" (for me 
v6.5).



Phil.


___Email : [EMAIL PROTECTED] 
Web: www.spatialprojects.com.au 
Skype: PhilWaight



  - Original Message - 
  From: 
  Hughes, Colleen / Don Mitchell 
  
  To: mapinfo-l@lists.directionsmag.com 
  
  Sent: Friday, September 01, 2006 10:26 
  PM
  Subject: RE: [MI-L] Complex SQL 
  Joins
  Hi Evan,I don't think MapInfo allows you to 
  combine columns or to use functions when creating a join. It hasn't 
  worked for me in the past.You could try creating a new column and 
  populating it with either Table2.state+Table2.community in Table2 or 
  Right$(Table1.cmtyno,4) in Table1, and then do a join using this new 
  column.DonMessage: 1Date: Thu, 31 Aug 2006 10:00:58 
  -0700From: "Evan MacDougall" [EMAIL PROTECTED]Subject: 
  [MI-L] Complex SQL JoinsTo: mapinfo-l@lists.directionsmag.comMessage-ID:[EMAIL PROTECTED]Content-Type: 
  text/plain; charset="us-ascii"I am trying to join two tables in 
  MapInfo where there isn't a column-to-column match. In Oracle SQL I can 
  do a join on substrings of a panel or on a joint _expression_ of two columns 
  matched to one.However, when I try this in MapInfo it gives me an error 
  about my join not being valid.Table1 cmtyno (char 6) = 
  Table2 state (char 2) + Table2 community (char 4).So I 
  try this as my join:Table1.cmtyno = 
  (Table2.state+Table2.community)MapInfo throws me an 
  error saying it's an invalid join.Then I try this as my 
  join:Right$(Table1.cmtyno,4) = 
  Table2.communityThis also causes MapInfo to give me and 
  error about an invalid join.Is it possible to join these 
  two tables without creating new columns?Am I just getting my syntax wrong 
  or have I found a limitation in MapInfo?-Evan 
  MacDougallGIS SupervisorNationwide TotalFlood Services Inc. 
  (NTSI)(a wholy owned subsidiary of Capital Title Group)[EMAIL PROTECTED](800)736-3109 
  x3681"Gentlemen, we may not make history tomorrow, but we shall 
  certainly change the geography."
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


[MI-L] area calculation discrepancies

2006-08-26 Thread Phil Waight



In MI 6.5, the area seems to be affected by the "Set 
Resolution" value and unless specified for the current session MapInfo uses the 
default of 100 for area calcs.

For a circle object, radius 1km, UTM 
projection:

set resolution 100 -- area is 3.141598set resolution 100 -- 
3.13956Update Untitled Setcomp_area = format$(CartesianArea (obj, "Sq 
km"),"#.")
Difference is ~0.07%. So:
1. Area() function uses SphericalArea(), even in a cartesian coord 
system. Seems a bit odd.2. Objects get converted from native to region 
before area calcs are performed and "Set Res" value is used. 
The large resolution slows the update considerably so a small default makes 
sense (with a doc. note regarding the accuracy?). I suppose the fact that double 
click on a circle, rectangle and rounded rectangle only provides basic dimension 
properties and not area or perimeter is a hint.
MapBasic manual ref on "set resolution" - probly should mention impact on 
CartesianArea() function as well:
By default, MapInfo assigns 100 nodes per circle when converting 
a circle or arc into a region or polyline. Use the Set Resolution statement to 
alter the number of nodes per circle. By increasing the resolution setting, you 
can produce smoother result objects. 
The Set Resolution statement affects subsequent operations 
performed by the user, such as the Objects  Convert to Regions command and 
the Objects  Convert to Polylines command. The resolution setting also 
affects some MapBasic statements and functions, such as the ConvertToRegion( ) 
and ConvertToPline( ) functions. The resolution setting also affects operations 
where MapInfo performs automatic conversion (e.g. Split, Combine). 

Phil.


  - Original Message - 
  From: 
  Bob 
  Young 
  To: COLDREY, Cathy (Bristol) ; 
  mapinfo-l@lists.directionsmag.com 
  
  Sent: Thursday, August 24, 2006 8:41 
  AM
  Subject: Re: [MI-L] area calculation 
  discrepancies
  
  Hi Cathy
  
  I hope the following is of some use, although even 
  taking into account these factors I get another set of numbers none of which 
  match exactly!
  
  The corrrect area mathematically ( PI * R * R ) is 
  3,141,593 for a non earth projection ie as a CAD system would compute 
  it.
  
  You can ask MapInfo to compute either the spherical area 
  or the cartesian area. If you want to get a "mathematical" match with PI * R^2 
  then you need to use cartesian. When using update column use CartesianArea 
  function rather than Area function (which returns spheroid area). ( This does 
  work accurately for rectangles and polygons).
  
  Thereare also two ways you couldcreate the 
  circle. The best result should come form holding down shift key and drawing an 
  ellipse. I say should because this would be stored internally in MapInfo as a 
  centre point and a radius, and so should be able to be computed accurately. If 
  you use this method the double click doesNOT return the area, so I 
  suspect you did not use this method.
  
  The alternative method is to use the buffer command, and 
  set the smoothness to maximum of 100. A snag with this method is that this is 
  not stored as a true circle but as a threepenny bit iewith 100 flats. 
  The area will therefore not be correct. This type of objectWILL report 
  its area with adouble click.
  
  If you have imported theobject from some other 
  system this might also account for why your area is reported with a double 
  click.
  
  With either type of object, using cartesian ( or 
  spherical ) I cannot get an exact match but I get closer agreement to the 
  correct cartesian value of 3,141,593 with 3,139,567 for a true circle ( shift 
  key method ) and 3,139,526 for buffer of a point method with maximum 
  smoothness ( both got from update column and CartesianArea function). 
  
  
  A 1 km squarereturns exactlythe correct answer of 1,000,000 providing you stick with cartesian. 
  You can set the map window to use cartesian using Options... off the map menu. 
  You can reset the radius etc by double clicking when the layer containing the 
  object is editable.
  
  Hopefully someone will throw some light on the 0.07% 
  error on the circle.
  
  Regards
  
  Bob
  
  
- Original Message - 
From: 
COLDREY, Cathy (Bristol) 

To: mapinfo-l@lists.directionsmag.com 

Sent: Wednesday, August 23, 2006 5:34 
PM
Subject: [MI-L] area calculation 
discrepancies

Hi List, 

Does anyone have much experience in calculating areas of polygons or 
circles in MapInfo?

My problem is this. I have a 1 km radius which has exactly a 
diameter of 2km, meaning a 1 km radius. Now mathematically the area of 
theis would be 3136860 square m. But if I use the update column 
option the number I get is 3118630 square m
or double click on the object I get 3119000 square m.

I am using British national grid projection.

Can anyone explain to me why I 

[MI-L] MapBasic and Code Sharing

2006-06-05 Thread Phil Waight



There are currently 2 common methods of 
distributing usable code in the MapBasic world: the MBX or .MB source. The MBX 
will be free or for a fee and the accompanying licence will generally indicate 
the terms of use. (PS: I have yet to see a programlicence saying "please 
feel free to reverse engineer this and do with it as you will".)

MapInfo's approach to maximize market back in 1990? 
was to provide mapinfo pro/mapbasic on mac, unix and win, but for obvious 
reasons (then) without an IDE of any sort, without accompanying "libraries" 
(except maybe for auto_lib?), but with some sample applications - the reasons 
being (IMO)the relatively large effort to provide an IDE on all platforms 
compared to the development cost of getting the "basic" compiler to market. Then 
around v4?, mac/unix was dropped and the argument for not providing an IDE for 
win probably changed to "we are already selling x000 copies a year , an IDE 
wont increase that by much" etc. Also MapX came along for "serious 
programming".

Anyway, the significant thing that distinguishes MB 
development (from my point of view) from other environments is not the lack of 
an IDE , but the factthat whilst there isan equivalent to the 
component: ocx/dll, NO ONE uses this as a distribution method. The equivalent is 
the MBO with an accompanying include file. This method is pretty much identical 
to a developer writing something useful in an MSlanguage, packaging it as 
an OCX, providing some doco and selling it. The MS component developer would not 
consider distributing source code in general, as he wants to protect his ideas 
and make a buck, but he also want to package it so it is most useful to his 
target market, being other developers.

There are probably many reasons why the MBO 
distribution method is not used. I would think mostly that the usual in-house 
development project doesnt budget for some return on the development costs 
through distribution of selected pieces of the built code. The other is that it 
is not pushed as a "feature" in MapInfo marketing. There is the issue of adding 
some sort of registration and copy protection if its not for free use. 


But why should MBO+includes be distributed, 
compared to source or MBXs? Because well documented function and sub calls in a 
tool kit become a huge cost saver for the average development project. Source is 
a nuisance, because as soon as it is copied it becomes a maintenance problem. If 
source has significant intellectual content, who would want to give that 
away?A distributed MBO file on the other hand has documented inputs and 
outputs, and must be designed to work as a "black box". There is also an 
implication that the author will maintain it and provide updates.An 
MBX is not accessible to a developer except for the "Run Menu Command ..." 
method.

I shudder to think of the amount of "reinventing 
the wheel" that must happen with MapBasic. The curious thing is that although 
MapX has been around for nearly as long as MapBasic, there is also little (no?) 
packaging of MapX content into sharable modules. MapX objects can be passed to, 
for example, an ActiveX exe, with the licence requirements being met by the 
calling program.

Cant see anything changing with MapXtreme .Net 
unless someone sees that there is benefit/a $ to be made by doing what MI 
does.




Phil Waight.


___Email : [EMAIL PROTECTED] 
Web: www.spatialprojects.com.au 
Skype: PhilWaight


thumbs up.gif
Description: GIF image
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


[MI-L] Product announcement - LayMan v3.05

2006-05-18 Thread Phil Waight



LayMan has some fixes and enhancements: http://www.spatialprojects.com.au/layman_whatsnew.htm?exptag=ftrsexptag=changes
Polyline and region object details 
(polygon,node,coordinates) can be browsed (one node per row) and edited, one 
object at a time. 
The previous update in April improved the handling 
of large numbers of open tables.

Phil Waight.

__Email : [EMAIL PROTECTED] 
Web: www.spatialprojects.com.au 
Skype: PhilWaight
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


Re: [MI-L] Web Page Building and Hosting

2006-05-02 Thread Phil Waight



A few ideas:


  Google your way to the cheapest domain 
  registration / hosting package and work up from there. Unix hosting seems to 
  provide the lowest cost and yet with most facilities you'll need. Low cost 
  also means minimal support, so be prepared to do your own problem solving, 
  aside from basic operational issues. Server up-time with these packages can be 
  an issue also - worth checking. (I pay ~AU$100 per annum for my 
  site).
  Look for web page templates that suit your 
  purposes. For ease of maintenance, and once you have a basic page design, the 
  ability to include menus, headers and footers using SSI or equivalent (Server 
  Side Includes) is important as it saves duplicating html in each page. (SSI 
  looks like -- !--#include file="yrmenus.htm" --) 
  You will need to search for help on setting this up as for this to work, 
  particular file priviledges need to be set on the server for each included 
  file.
  Gather _javascript_ from wherever you can find it to 
  extend the interface. You can ease into this gently by finding a complete 
  working js file and try some of the calls in your HTML. Then extend and change 
  as you become more comfortable with java.One good source of highly 
  functional _javascript_ is Twin Helix Designs ... http://www.twinhelix.com. From IE, as well as ViewSource to see what 
  someones html looks like, you can find any referenced .js file in yr "temp 
  internet files" folders.
  Use style sheets (.css) to minimize the formatting 
  with each HTML tag (even though the .css syntax is hard to come to grips 
  with).
  Test your pages with say Firefox  Opera as 
  well as IE when you get more sophisticated with content. IE7 beta 2 seems to 
  be quite solid (compared to the first release) - the tabbed pages and new 
  handling of favourites is a productivity plus over IE6. If you have problems 
  with _javascript_, the js console in Firefox and particularly Opera seems to 
  better than IE for locating problems (dont know about IE7 yet). The html and 
  java compatibility between browsers these days is much better than when it was 
  just Netscape Nav and IE. Although some MS products generate HTML that is 
  unreadable by anything other than IE (Visio,word).
  Google provides some useful info on how to 
  structure your pages to maximise search results. Title tag content is 
  important, less so meta keywords it seems. Key phrases are more 
  important than words. Well structured pages that display quickly but with lots 
  of content provide the best results in this regard (and the best browsing 
  experience IMO). You can use _javascript_, DIV .. style= .. tag to 
  include nested topics that are hidden on first paint but display with a click. 
  THen the user is not inundated with scrolling pages of guff, the content loads 
  in the background whilst the first click is contemplated,and a click on 
  a topic expands the appropriate paragraphs. The beauty of this approach is 
  that the clicks dont result in full page repaints (which I find the most 
  irksome part of web browsing). Look at www.spatialprojects.com.au/spatialsql.htm 
  source to see how the nested topics work.
  The ?= attribute in a URL can be trapped (in 
  _javascript_) and allow you to jump to a specific location in a page (eg. http://www.spatialprojects.com.au/mbtestbench.htm?exptag=wotsnew). 
  THis is quite neat as page links to a particular (expandable) topic improve 
  navigation significantly.
  I've seen comments that multi-frame pages are not 
  good form but cant recall why - security ?.
  With SSI, you can easily include links (in a menu 
  say) to yr site pages that have changed recently. This approach is more user 
  friendly than having to traul through all pagesto find updated 
  information. 
  Find a good HTML editor (I use VS .net which is 
  great) and an FTP tool (my 1996 copy of WS_FTP still works nicely) and a TAG 
  clean/check utility (http://tidy.sourceforge.net/is 
  one). MS Word (2003) generates unbelievable strings of attributes on tags and 
  I would avoid it like the plague - but others might have had a more favourable 
  experience with it. (I think Word 97 is a better product than recent versions 
  - curious that Word 2003generates separatewindows for documents 
  but IE7 is now reverting to the all-in-one Tabbed design - a la Word 
  97!!).
  Set up a mirror of your site on yr own system for 
  testing. Be wary of local paths (to image files,html files) 
  substituting for the correct URL.
  I havent set up a web map server recently so will 
  leave those comments to others. aspmap is easy to set up though.A first 
  start might be a series of KML links on a page and let GE do the work or 
  a link to multimap etc.
  Provide links tooriginal sources of 
  scriptsetc, so others (and authors)can 
benefit.


HTH
Phil Waight.

___SPATIAL 
PROJECTSEmail : [EMAIL PROTECTED]Web: 
www.spatial

Re: [MI-L] Questions on Combining two WOR

2006-04-11 Thread Phil Waight



You could try LayMan at www.spatialprojects.com.au\layman.htm

It doesnt have map merging, but I thought I had 
seen a reference to this type of app in http://www.directionsmag.com/files/. 
Quick search doesnt show anything - probably because coding a merge using 
MapBasic LayerInfo and "Add Map/Set Map" would be almost as tedious as 
processing 2 wor files to merge the map statements. Now what might be nice in MI 
Prois default (named?)styles and label info saved with a table as 
metadata, so all you would need to do is "add map .. layer..".

Google on "mapinfo workspace (merge OR combine) map 
application" gives 12,600 results.
'mapinfo ("merge map" OR "combine map" OR "map 
merge" ..) application' gives58 results, none at first glance 
applicable.

LayMan does have the ability to Load a workspace for step execute, run in safe mode, or simple 
user editing (use a text editor for multi-line manipulation). Also allows 
workspaces to be run consecutively, skipping references to "open table" for 
those already open. If you have managed to create a merged map in a wor file 
with lots of layers, LM will reorder layers in an "optimal" order. Most recent 
version info (update last week): http://www.spatialprojects.com.au/layman_whatsnew.htm?exptag=ftrsexptag=changes

Regards,
Phil Waight.

___SPATIAL 
PROJECTSEmail : [EMAIL PROTECTED]Web: 
www.spatialprojects.com.auSkype: 
PhilWaight

  - Original Message - 
  From: 
  Bratcher, Jeff 
  To: 'mapinfo-l@lists.directionsmag.com' 
  
  Sent: Tuesday, April 11, 2006 7:51 
  AM
  Subject: [MI-L] Questions on Combining 
  two WOR
  I have two states from StreetSmart Data. 
  They both use many tables, with custom setting on every level, depending on 
  your zoom status. I want to combine them into one map, but I cannot open 
  the second into the mapper of the first. They always appear in different 
  windows.I was able to import the tables into the first map, but the 
  custom levels were gone. I spent alot of time reconfiguring the tables 
  to get the map to look right. Too much time.So I then looked at 
  editing the WOR file itself. I open both WOR files using WordPad, and 
  then copied all the references from the second table into the first 
  table. None of the tables use the same name, and I brought all the 
  custom layers over and renumbered them to fit the the combined WOR. 
  BUTWhen I opened the combined file, the file was very buggy 
  and kept trying to put PLACENAME on everything, so much so that it looked like 
  a tornado was forming on the screen, complete with spinning off other swirling 
  masses of PLACENAMES!Does anyone know of the trick of combining two 
  WOR's, when the "open into current mapper" does not work? Maybe also a 
  tip on how to edit a WOR directly?Maybe I am missing a bit of code or 
  something. Perhaps using WOrdPAD to make the edits introduced a 
  problem. Maybe there is a way to open a WOR as a browser in 
  Mapinfo?Any help would be greatly 
  appreciated!ThanksJeff BratcherPresentation 
  TechnologiesCredit-Suisse==Please 
  access the attached hyperlink for an important electronic communications 
  disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html==___MapInfo-L 
  mailing listMapInfo-L@lists.directionsmag.comhttp://www.directionsmag.com/mailman/listinfo/mapinfo-l
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


Re: [MI-L] Complicated Buffer Query

2006-03-16 Thread Phil Waight



As an alternative to Voronoi polygons, 
spatialSQL will solve this style of query.

Input polygons with some touching edges, buffered: 
www.spatialprojects.com.au\images\median2.jpg
Median line update: www.spatialprojects.com.au\images\median3.jpg
Watch it happening: www.spatialprojects.com.au\images\median.avi

More on median lines: www.spatialprojects.com.au\spatialsql_median.htm

Median lines on the function pad are free (2 
selected objects)As a general update, the registered version is 
required.


Phil.
___SPATIAL 
PROJECTSEmail : [EMAIL PROTECTED]Web: 
www.spatialprojects.com.auSkype: 
PhilWaight

  
  
  
  
  Hi folksI am confronted with a bit 
  of a problem and was wondering if anybody hadany clues as to how I might 
  get around it...The situation is this:I have a table with 
  complex polygons that I need to buffer - only I needto maintain any 
  existing boundaries between polygon objects - I can'thave any 
  overlaps.Is there a way to run a complex buffer that does not buffer 
  any linesegment that is a boundary between existing polygons?I had 
  thought of copying my existing table, converting it to polylinesand 
  somehow removing all lines that are unique, (theoretically leavingme with 
  only lines that are a boundary between 2 polygons) and usingthis table as 
  a "cookie cutter" on the standard buffer result, but thatwill still leave 
  me with loads of "slices" of polygons I will then needto delete... and I'm 
  pretty sure there are other problems with this ideathough that I don't 
  even want to think about...Any help would be much 
  appreciated!CheersMathieu ApersMapping 
  Co-ordinator Letterbox Channel 
79 
  Hugo Johnston Drive, Penrose Private Bag 
  92050 Auckland  
  Phone 09 
  574-4449 
  Fax 
  09 574-4415 Toll 
  Free 0800 
  LETTERBOX 
  0800 538-837 This email with 
  any attachments is confidential and may be subject to legal privilege. 
  If it is not intended for you please reply immediately, destroy it and do 
  not copy, disclose or use it in any way. 

___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


[MI-L] LayMan v3.02

2006-02-16 Thread Phil Waight



The most recent changes to LayManimprove the 
ability tolocate tables in the catalogby type and contents. I have 
about 6000 tables and 500 workspaces on mynetwork and whilst there are a 
few obvious directory trees to go looking for things, every project has its own 
local data set and naming conventions dont help a lot. 

The key improvement is a catalog filter by table 
type (base, seamless,image..), object type (symbol,polygon etc.) and whether the 
table bounds intersect the current front Mapper. So a very large list of tables 
can be quickly trimmed to the ones relevant to the current task. Table bounds may be displayed on a map from tables, layers and 
the catalog.

http://www.spatialprojects.com.au/layman_whatsnew.htm?exptag=ftrsexptag=changes

and http://www.spatialprojects.com.au/layman_solutions.htm

Most of the enhancements are available on a 30 
session trial basis, then pay and register.

Phil Waight.
___SPATIAL 
PROJECTSEmail : [EMAIL PROTECTED]Web: 
www.spatialprojects.com.auSkype: 
PhilWaight
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


[MI-L] At the risk of posting for a 4th time on the subject ...

2006-02-16 Thread Phil Waight



Apologies to anyone who received my message more 
than the intended once. My reference as to whether messageswere 
receivedis http://www.directionsmag.com/mapinfo-l/IndexMapInfoL.htmwhich 
shows 1 message, after the server problem was resolved.

Phil Waight.
___SPATIAL 
PROJECTSEmail : [EMAIL PROTECTED]Web: 
www.spatialprojects.com.auSkype: 
PhilWaight
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


[MI-L] LayMan v3.02

2006-02-15 Thread Phil Waight
The most recent changes to LayMan improve the ability to locate tables in the 
catalog by type and contents. I have about 6000 tables and 500 workspaces on my 
network and whilst there are a few obvious directory trees to go looking for 
things, every project has its own local data set and naming conventions dont 
help a lot. 

The key improvement is a catalog filter by table type (base, seamless,image..), 
object type (symbol,polygon etc.) and whether the table bounds intersect the 
current front Mapper. So a very large list of tables can be quickly trimmed to 
the ones relevant to the current task. Table bounds may be displayed on a map 
from tables, layers and the catalog.

http://www.spatialprojects.com.au/layman_whatsnew.htm?exptag=ftrsexptag=changes

and http://www.spatialprojects.com.au/layman_solutions.htm

Most of the enhancements are available on a 30 session trial basis, then pay 
and register.

Phil Waight.
___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
Skype: PhilWaight
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


[MI-L] LayMan v3.02

2006-02-13 Thread Phil Waight
The most recent changes to LayMan improve the ability to locate tables in the 
catalog by type and contents. I have about 6000 tables and 500 workspaces on my 
network and whilst there are a few obvious directory trees to go looking for 
things, every project has its own local data set and naming conventions dont 
help a lot. 

The key improvement is a catalog filter by table type (base, seamless,image..), 
object type (symbol,polygon etc.) and whether the table bounds intersect the 
current front Mapper. So a very large list of tables can be quickly trimmed to 
the ones relevant to the current task. Table bounds may be displayed on a map 
from tables, layers and the catalog.

http://www.spatialprojects.com.au/layman_whatsnew.htm?exptag=ftrsexptag=changes

and http://www.spatialprojects.com.au/layman_solutions.htm

Most of the enhancements are available on a 30 session trial basis, then pay 
and register.

Phil Waight.
___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
Skype: PhilWaight
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


Re: [MI-L] Multi-page PDF output

2006-02-09 Thread Phil Waight
Adobe Distiller is the tool for the job (acrodist.exe) and postscript printer 
driver.

  1.. In your MapBasic appliation, you printwin each page as a postscript file, 
and build a list of names for processing. This is trickiest step, as you need 
to wait til the print file's available and rename it from the standard 
postscript output location. There are various steps, but once fileexists 
succeeds, I loop on a open, pos to EOF, read location, close and wait for the 
EOF location to remain unchanged. (There may be a system call which does this 
more succinctly)
  2.. Create a Distiller job file with commands for thumbnails and listing the 
page file references. You can create hierarchical, nested bookmarks if you have 
subset geography to process.
  3.. Run Distiller from MapBasic using ExecuteandWait
  4.. Clean up all the .ps files.
The whole thing is non-trivial. There are a number of timing issues and the 
masses of temp tables no doubt created need to be closed and deleted along the 
way, but once running works consistently. 

Regards,
Phil Waight.

___
SPATIAL PROJECTS

Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
Skype: PhilWaight
  - Original Message - 
  From: Bill Thoen 
  To: mapinfo-l@lists.directionsmag.com 
  Sent: Friday, February 10, 2006 3:09 AM
  Subject: [MI-L] Multi-page PDF output


  I have a MapBasic application that prints maps from layout windows to a PDF
  driver and all seems to work as far as that goes. However, I've been asked
  if there is a way when printing several maps in a batch mode, if I can send
  them all to the same PDF output file, and create a sort of multi-page PDF
  file. Does anyone know how this can be done using MapBasic? Or are there
  special PDF printer devices that can allow this?

  - Bill Thoen
  ___
  MapInfo-L mailing list
  MapInfo-L@lists.directionsmag.com
  http://www.directionsmag.com/mailman/listinfo/mapinfo-l
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


Re: [MI-L] CHECKING LINE CONTINUITY

2006-01-31 Thread Phil Waight
Peter,

This may help ...

http://www.spatialprojects.com.au/spatialsql_doc/UPD_Combine_disjoint.htm

Phil Waight
___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au


- Original Message - 
  From: Peter Hatton 
  To: mapinfo-l@lists.directionsmag.com 
  Sent: Wednesday, February 01, 2006 4:05 PM
  Subject: [MI-L] CHECKING LINE CONTINUITY





  Hi all,
  I have a datset consisting of 1495 polyline objects ( 0.5m contours ). Can 
someone advise me how I can verify the continuity of the linework  ie: 
ensure that there is no fragmentation / break in any of the polylines. I am 
aware of OBJECTS . SNAP / THIN but this doesn't identify the lines that are 
broken. In my case I need to identify the breaks in the linework and then work 
through the individual areas so that I am sure that the correct lines are 
joined .. I think the OBJECTS . SNAP / THIN option with the 
tolerance option has the possibility of joining polylines of different value / 
height without having control apart from the possible hit and miss of this 
option.
  Many thanks for in advance .

 Regards
  Peter


  Peter HATTON
  GIS Officer
  Greater Taree City Council
  2 Pulteney Street TAREE 2430
  phone 02 6592 5227
  e-mail [EMAIL PROTECTED] gov.au

  This email and any files transmitted with it are intended solely for
  the use of the individual or entity to whom they are addressed.
  Greater Taree City Council is a government organisation and is subject
  to Freedom of Information legislation. You must assume that any
  material sent to Greater Taree City Council may be accessible by
  persons other than the intended recipient.
  The contents of this message may express views and opinions
  not necessarily shared by Greater Taree City Council.
  ___
  MapInfo-L mailing list
  MapInfo-L@lists.directionsmag.com
  http://www.directionsmag.com/mailman/listinfo/mapinfo-l
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


Re: [MI-L] GElink KML export

2006-01-19 Thread Phil Waight
You need to select the objects for export in MapInfo first. Then the vector 
data exports OK.

Also, for general information, the MBX is patchable for earlier MI versions, 
but then only the vector export works as the raster must use a recent MI 
feature.

If you have an ordered set of lines or points the Play Tour feature is nice 
visualization method.

Phil Waight.
  - Original Message - 
  From: Pandya, Shvetketu 
  To: 'MapInfo-L@lists.directionsmag.com' 
  Sent: Friday, January 20, 2006 7:41 AM
  Subject: [MI-L] GElink KML export


  I am trying to export selected object in map window (object selected is only
  one for testing) from MIP 8.0 in KML using GE link utility, but I am not
  able to see any export and MIP program is not responding/hangs up. 

   

  I am not having any problem if I export map window as raster image (option
  1) and I can see this jpg in Google earth. I am using free version of Google
  earth. 

   

  I will appreciate any help on this.

   

  Regards,

  Shvet.

  ___
  MapInfo-L mailing list
  MapInfo-L@lists.directionsmag.com
  http://www.directionsmag.com/mailman/listinfo/mapinfo-l
___
MapInfo-L mailing list
MapInfo-L@lists.directionsmag.com
http://www.directionsmag.com/mailman/listinfo/mapinfo-l


Re: MI-L smallest enclosing rectangular box

2005-10-18 Thread Phil Waight
An approximate but fast method might be (havent tried it):

  1.. Determine principal axes of region. (fast to calculate in c)
  2.. Rotate region to align PA with X-Y axes.
  3.. Determine MBR of rotated region.
  4.. Rotate MBR back to original location.
This will work well on shapes with clear axes of symmetry (where it is possibly 
of most use), but for arbitrary shapes, less so.
The principal axes like (true) geometric centroid, visual centroid should be 
storable as a basic object property (hope MI .net might facilitate this). 

HTH
Phil Waight.
___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
  - Original Message - 
  From: Rinus Deurloo 
  To: mapinfo-l@lists.directionsmag.com 
  Sent: Thursday, October 13, 2005 5:46 PM
  Subject: MI-L smallest enclosing rectangular box


  Dear all,
   
  Does any one know a fast algorithm for calculating the smallest enclosing 
rectangular box around a region? I do not mean the MBR, because often this is 
not the smallest, due to its fixed north-south orientation. I mean the box that 
is independent of orientation.
   
  Thanks in advance.
   
  Rinus Deurloo
  University of Amsterdam
  Dept. of Geography and Planning
  The Netherlands.

  -
  List hosting provided by Directions Magazine | www.directionsmag.com |
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  Message number: 18249



Re: MI-L smallest enclosing rectangular box

2005-10-18 Thread Phil Waight
Nick,
The max. radius contained circle can be found. Its centre is the visual 
centroid.
A method that I'm interested in following up sometime is mentioned here in note 
4:
http://www.spatialprojects.com.au/spatialsql_centroids.htm

The principal axes are located at the geometric centroid which may be outside 
the region.
However the VC is already an ideal internal label point. The prinicpal axis 
alignment at the
VC should provide a good centre for rotated labels if one exists. The 2nd 
moment of area
provides a possible preferred alignment axis (minimum value of 2nd moment). 
The relative values of 2nd moment for each axis is a test for whether a rotated 
label would look sensible.
(eg. if the values are the same as in the case of a rotated square, horizontal 
alignment is best)

The length of line through the VC at the PA angle intersecting the region is a 
test for label fit. 
The centre of this line could be a better origin point than the VC in some 
cases.

Might sound a lot of work but all this should be calculated once for a region 
and stored for use
in labelling etc.

Phil Waight.
___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
  - Original Message - 
  From: [EMAIL PROTECTED] 
  To: mapinfo-l@lists.directionsmag.com 
  Sent: Wednesday, October 19, 2005 9:36 AM
  Subject: Re: MI-L smallest enclosing rectangular box


  A twist on this question.

  Is there a way of calculating the maximum internal rectangle?

  That is, the largest rectangle (of any angle) that fits inside a polygon.

  Such a thing would be useful as a text box for labelling.

  nick



  
  Opinions contained in this e-mail do not necessarily reflect
  the opinions of the Queensland Department of Main Roads,
  Queensland Transport or Maritime Safety Queensland, or
  endorsed organisations utilising the same infrastructure.
  If you have received this electronic mail message in error,
  please immediately notify the sender and delete the message
  from your computer.
  


  -
  List hosting provided by Directions Magazine | www.directionsmag.com |
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  Message number: 18381


Re: MI-L Label Placement Tool

2005-10-04 Thread Phil Waight
Kara,

For background, here are some references on labelling as a GIS problem:
http://www.spatialprojects.com.au/splinks.htm?exptag=refexptag=lbl

In other words, until we have 100+ GHz computers on our desk and memory to hold 
all data, solutions are going to require batch-style processing.(Even then, a 
city's worth of processing is never going to be as fast as a simple autolabel). 
An important characteristic of current generation solutions to look for is that 
the output is dynamic. This means that once a geographic area is processed, the 
feature styles and labelling should be available for normal interactive map 
display in desktop and web applications through all display scales. The end 
user should see display performance about the same as for a conventional 
autolabelled map. 

Making a few assumptions here but: Considering that the layers you want 
improved labelling on are usually static (updates for streets, zipcodes and 
suburbs once a year? ), and your own layers are most likely simpler point 
layers, one scenario is: process label layers for the base layers once and then 
combine this output with your own layers, giving them label priority and save 
to workspaces. Although I havent reviewed EverName and MapText recently, they 
should provide dynamic output of processed workspaces.

Alternatively, put pressure on your data providers to deliver quality label 
processed street and boundary tables and workspaces. There is no reason why 
data providers cant do significantly more value-add before delivering data (eg. 
using a product such as spCarto). (Some of the data I receive for processing 
for my customers is in a truly woeful format! eg. common-attribute rivers and 
roads that are not a single polyline object between intersections). Street data 
providers (IMO) should provide a set of clean tables optimised for query and 
analysis, a set of tables with display handler applications (if needed) for 
quality label display, and workspaces to suit.

My own applications deliver solutions using this approach:

http://www.spatialprojects.com.au/spcarto.htm is designed primarily for urban 
street and boundary output. Workspaces and geosets allow reuse in MapInfo Pro, 
MapX or with a little more work, MapXtreme.

http://www.spatialprojects.com.au/polylabel.htm is designed for general 
polyline and region labelling where character-alignment to the feature produces 
a much better result than word or string alignment. 

http://www.spatialprojects.com.au/spatialsql.htm?exptag=exp2exptag=labelfns  
corrects point and region label layers for clashes with other features and 
labels. This uses an iterative, greedy approach as described in the first 
reference above. Although the output can be saved in workspaces (and zoomed 
etc.), the absolute placement is ideal for the chosen display scale only.

HTH.
Phil Waight.

___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au


  - Original Message - 
  From: Kara Schneider 
  To: MapInfo-L@lists.directionsmag.com 
  Sent: Wednesday, October 05, 2005 1:31 AM
  Subject: MI-L Label Placement Tool




  To Whom It May Concern:

  I am a MapInfo user working in the GIS Department at Blockbuster Inc.  Our
  department is in the process of locating a good quality label placement
  tool to use with MapInfo Professional.  The main purpose of finding this
  tool is to save time in the labeling process of creating very extensive
  detailed maps.   We have tested two label placement tools used in MapInfo,
  for instance, SmartLabel by Map Text and EverName by EverMap.  SmartLabel
  is able to mark streets, unlike EverName, but it still takes an extreme
  amount of time to run the application, and the results are not what I
  anticipated.  Our main concern when creating detailed maps is the time
  consumption toward labeling streets and cities to make them visually
  appealing.  We need a product that will label these items quickly with
  precision, and no overlap.  If you know of any products that fit these
  criteria, please inform us.  Thank you.

  Kara Schneider
  Development - GIS

MI-L Product announcement - LayMan version 3.0

2005-08-23 Thread Phil Waight
LayMan version 3.00 is a major release. It is now a  Microsoft .NET client 
application and an OLE client of MapInfo Professional. LayMan is designed to 
facilitate navigation between MapInfo windows and enhance the traditional 
window, table, map, layout and workspace functions within MapInfo.

Basic use is free with a number of advanced functions requiring registration.

See information about LayMan here: 
www.spatialprojects.com.au\layman_whatsnew.htm
Download here: www.spatialprojects.com.au\layman.htm

 Phil Waight.

___
SPATIAL PROJECTS
Ph (61)02 48617977
  0418 647697
Fx  (61)02 48617977
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au


Re: MI-L MapBasic Text object question

2005-06-20 Thread Phil Waight
The method I use is to recreate the object in memory using all the attributes 
of the object you're querying, at its shifted position.

oText = CreateText( window_id , x , y , text , angle , anchor , offset ) 

and

otextMBR =  mbr (oText)

The other reason to do this (recreate oText) is if you need the rectangle of a 
rotated text object. The method here is to get the MBR of the unrotated object 
and then rotate the MBR about the anchor point.

Regards,
Phil Waight.



-Original Message-
From: Canfield, Andrew [mailto:[EMAIL PROTECTED]
Sent: June 20, 2005 17:26
To: mapinfo-l@lists.directionsmag.com
Subject: MI-L MapBasic Text object question

To all who may know,
Using Mapbasic how do I get the minimum bounding rectangle for just
the text of a text object when it has an arrow pointing to something. Using
MBR() or using ( ObjectGeography(Lyr.Obj,1), ObjectGeography(Lyr.Obj,2),
ObjectGeography(Lyr.Obj,3), and ObjectGeography(Lyr.Obj,4) to create a
rectangle ) both yield the same thing. They give me the MBR for the entire
entity including the arrow. I need the MBR of just the text. Does anyone
know how I can accomplish this?
Thank you,
Andy



Re: MI-L Visual Centroid

2005-05-09 Thread Phil Waight
Phil,

spatialSQL (www.spatialprojects.com.au\spatialsql.htm) provides an interactive 
and program-called visual centroid function.

The help file documents the menu and button pad ids to achive this:

.
Define spSQL_CREATE_VISCENTROID 3107  'Create region Visual Centroids 
for selected objects

...
select some regions
...
Run Menu Command Id  spSQL_CREATE_VISCENTROID
...

As this is one of the free functions, it does not require program registration.

Regards,
Phil Waight.

___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
  - Original Message - 
  From: Phil MacAuley 
  To: 'MapInfo-L@lists.directionsmag.com' 
  Sent: Tuesday, May 10, 2005 3:55 AM
  Subject: MI-L Visual Centroid


  Hello,
   
  I am attempting to incorporate a custom function into an existing MBX that,
  in addition to what the MBX already does, will allow me to determine the
  visual centroid on a polygon.  (That is, the centroid of the largest circle
  that fits within a polygon.)
   
  Can anyone help me with the logic to go about determining the visual
  centroid?  I have been playing with increasingly larger negative buffers,
  which return increasingly smaller regions, but I am having issues with
  setting the buffer size, particularity with irregularly shaped polygons.
   
  Any thoughts?
   
  Thanks in advance,
  Phil


Re: MI-L Draw Radials

2005-05-04 Thread Phil Waight
Sid,

MapInfo 7.5 and later allows you to do this:

1. Draw 1 line horizontally, long enough to intersect your region at all points 
when rotated.
2. Open MapBasic window:
dim nrows as integer
3. Copy/paste line. You need something like: 
nrows = tableinfo(yourtab,8)
'no. rows in tab
Select * from yourtab where rowid=nrows into lastrow'selects 
last row
insert into yourtab (obj) select obj from lastrow
close table lastrow
Select * from yourtab where rowid=nrows+1 into lastrow'rselect 
new last row

4. Right click  Edit Objects  Rotate  pick anchor from map; lock anchor; 1 
deg. 
You might have to play with this a bit to get it right. 
THis will paste the correct code into the MB window.
5. Close table lastrow
6. Select the lines in steps 3-5 from mb window and hit ENTER 359 times ;-)
7. When finished, select all your lines  and SET TARGET. Select your region and 
Erase Outside.
8. Add a column to your Lines table as RadialLength say.
Update yourtab set RadialLength = ObjectLen(obj,units)

There may be an eaasier way to copy/paste line repeatedly, but cant think of 
one right now. (edit Objects  Offset has an option to copy but not sure if you 
can set the anchor at the desired end). You could try selecting, say 10 deg 
worth of lines in step 3. If you want each radial identified properly,  add and 
id variable and an id column to the INSERT at step 3.
Only problem is you may need to do some editing if any line intersects the 
region in more than 2 places (or that might be what you want).

If you dont have 7.5, it is still possible with the CreateLine( x1 ,  y1,  x2 , 
 y2 ) at step 4. and some trig to calculate x2,y2 each iteration..

Phil Waight.
___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
  - Original Message - 
  From: Sid C 
  To: MapInfo-L@lists.directionsmag.com 
  Sent: Thursday, May 05, 2005 1:56 AM
  Subject: MI-L Draw Radials


  Hi,

  How do I draw radials at each degree from any given point in a region,
  and calculate the distance between the point and region boundry.

  Thanks in advance

  Sid

  -
  List hosting provided by Directions Magazine | www.directionsmag.com |
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  Message number: 16357




MI-L PolyLabel update

2005-05-03 Thread Phil Waight
There is a new version at www.spatialprojects.com.au/polylabel.htm

This provides:

1. problem fixes and has been tested on MI 7.8
2. persistent button pad location
3. improved documentation, including the method for creating mixed PolyLabel 
and conventional autolabel output to satisfy the full range of display scales.

Free use for single selected line/polyline/region at a time.

Phil Waight.
___
SPATIAL PROJECTS

Ph (61)02 48617977
  0418 647697
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au

MI-L spatialSQL Update

2005-04-27 Thread Phil Waight
There is a new version at www.spatialprojects.com.au/spatialsql.htm

This provides a free set of functions on a button pad including:

1. Median line between two selected intersecting or non-intersecting objects of 
any type.
2. Visual / default centroid of selected polygons
3. Various line buffer types: square ends, round ends, half width (as 
left/right/N/S/E/W).

The button pad provides functions previously available within spatialSQL 
queries or menus as stand-alone tools.

Phil Waight.
___
SPATIAL PROJECTS

Ph (61)02 48617977
  0418 647697
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au

Re: MI-L MapInfo's Map Quality Gets Panned in the News

2005-03-06 Thread Phil Waight
Doing street labelling properly requires topology. Segmented streets need to 
be combined, the extent of the whole feature with common attribute for 
labelling (eg. street name) needs to be known. One view of MapInfo Pro's 
feature set is that if it cant be done in real time and the user see immediate 
results, it ain't worth doing. Possibly, MI RD/mktg considers that once 
topology needs to be built for a purpose, it needs to be retained (in TAB) , 
supported in export, import and by every other feature and function that is 
going to fall over it. In other words, it's just too hard. The curious adoption 
(and subsequent discard) of SpatialWare Topology Manager on the desktop may be 
a factor , along with the new relationship with Radius Topology - it looks 
like MI are dabbling but fearful of jumping in with their own products. The MI 
product line has sort of proven to date that you really dont need topology to 
satisfy business geographics, but there's always exceptions. My view of 
topology is that it's just another form of metadata, built to describe a data 
set more completely, rebuilt when invalidated by an edit, used by  whatever 
application needs it. It doesnt have to impact the performance of all the great 
features that have got by without it so far. Does require better management of 
the map data environment though.

Phil.

___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.spatialprojects.com.au
  - Original Message - 
  From: Ryan Morgan, Aerials Express 
  To: mapinfo-l@lists.directionsmag.com 
  Sent: Sunday, March 06, 2005 7:01 AM
  Subject: RE: MI-L Réf. : MI-L MapInfo's Map Quality Gets Panned in the News


  My Favorite part of the article:

  I am no cartographer and I make ugly maps too, but in business every map is
  part of selling an idea, or a location, etc., and 'pretty always wins.'

  So true!  I'm spoiled, I get to see millions of colors (in the aerial
  photography) on our maps.  Vector maps in MI need more capability...And how
  about a decent label tool?  Back me up guys, you know you love ArcMap's
  auto-label function...though neither wrap around a polyline, i.e. curved
  street!

  Just my 2 cents,

  Ryan Morgan
  Aerials Express
  www.Aerials-Express.com

  -Original Message-
  From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
  Sent: Friday, March 04, 2005 9:28 AM
  To: [EMAIL PROTECTED]; mapinfo-l@lists.directionsmag.com
  Subject: MI-L Réf. : MI-L MapInfo's Map Quality Gets Panned in the News

  Thanks for the link, I agree fully with the article. Our first  MapInfo
  version was 4.5 and it hasn't changed much in this respect untill now. The
  layout window which can represent different parts of a wider map is a
  wonderfull invention. However there are many graphical problems : 
  In thematics maps, the legends are never correctly aligned (I've had trouble
  with our pre-press specialist). You have to accept centered layout without
  option to align things left or right. 
  MapInfo doesn't offer any color management and when you have to convert your
  maps in the CMYK world, this is a pain. I understand that color management
  could be left for other imaging software. But MapInfo should at least offer
  CMYK palettes or HFS palettes.

  Christiane Roh



  Vient de paraître : Lausanne à la carte, le nouvel atlas lausannois


  Christiane Roh - Section Statistique Lausanne Statistique Lausanne - SCRIS
  Service cantonal de recherche et d'information statistiques Rue de la Paix
  6, CH-1014 Lausanne
  tél.: +41(021) 316 29 51
  fax : +41(021) 316 29 50





  Bill Thoen [EMAIL PROTECTED]
  04.03.2005 15:40

   
  Pour :  MapInfo-L mapinfo-l@lists.directionsmag.com
  cc : 
  Objet : MI-L MapInfo's Map Quality Gets Panned in the News


  Good grief! The general public is finding out what we've all known for quite
  some time -- MapInfo's graphic quality hasn't improved much since the days
  of MapInfo 3.0! 

  See Hal Reid's article in Direction Magazine, A Number of Colors 
  (http://www.directionsmag.com/article.php?article_id=776trv=1PHPSESSID=f85
  85645039fae89c65c89bd6e680378.)

  We don't want to get pegged as cartoon cartographers, do we? 

  - Bill Thoen



  -
  List hosting provided by Directions Magazine | www.directionsmag.com | To
  unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  Message number: 15522





  -
  List hosting provided by Directions Magazine | www.directionsmag.com |
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  Message number: 15546



Re: MI-L Vendee Globe - around the world , map by Esri

2004-12-21 Thread Phil Waight
Warren,

I think its about time MapInfo and (by the looks of it ESRI) did provide such a 
projection (BTW thanks for the variable central meridian description). And 
until then, its not difficult for developers to do the zoom handling and data 
duplication to handle it. If GPS navigation systems worked from -180 to 180, 
they wouldnt sell one. From a user perspective its not friendly when a 
navigation track stops because of a GIS deficiency.

thnx.
  - Original Message - 
  From: Warren Vick, Europa Technologies Ltd. 
  To: 'Phil Waight' ; [EMAIL PROTECTED] 
  Sent: Tuesday, December 21, 2004 9:19 PM
  Subject: RE: MI-L Vendee Globe - around the world , map by Esri


  Hello Phil,

  It's quite common with desktop-mapping/GIS system to handle a projected
  earth with no regard for 180E = 180W. It's common to add an extra bit of
  the globe, copied from the other side of the world, so that data goes
  beyond 180degrees in order to give continuity. This is a real fudge since
  overlaid information (such as a boat position) needs to be adjusted. It's
  not a specific ESRI problem, MapInfo has no world projections with a
  variable central meridian either.

  Regards,
  Warren Vick
  Europa Technologies Ltd.
  http://www.europa-tech.com

  -Original Message-
  From: Phil Waight [mailto:[EMAIL PROTECTED] 
  Sent: 21 December 2004 06:00
  To: [EMAIL PROTECTED]
  Subject: MI-L Vendee Globe - around the world , map by Esri


  Well, if you have an interest in:
  1. Sailing
  2. Web mapping OR
  3. Knowing where the edge of the world is according to Esri

  and have a few idle minutes, try this:
  http://www.vendeeglobe.org/uk/classements

  and click on view map

  I cannot get the map to show any detail (grid lines, features) East of 180
  degrees. So am curious to see what happens in a few days when the lead boats
  (at 171 east) reach the edge of the world. Do like the wind and boat
  direction overlay though.

  Phil. 





MI-L Vendee Globe - around the world , map by Esri

2004-12-20 Thread Phil Waight
Well, if you have an interest in:
1. Sailing
2. Web mapping OR
3. Knowing where the edge of the world is according to Esri

and have a few idle minutes, try this:
http://www.vendeeglobe.org/uk/classements

and click on view map

I cannot get the map to show any detail (grid lines, features) East of 180 
degrees.
So am curious to see what happens in a few days when the lead boats (at 171 
east) reach the edge of the world. Do like the wind and boat direction overlay 
though.

Phil. 



Re: MI-L Dot NET and the Future of MapInfo Applications

2004-12-16 Thread Phil Waight
A correction - MapX rowvalue object allows as much attribute manipulation as 
you would want to do. 

My issues for MI.NET:

1. The big limitation of MapX (or its environment), was that even after 10 
years+? of its existance, the availability of public free or commercial 
code/libraries for doing simple and complex things is non-existant. So 
code-snippet sharing via the mi list provided some limited source, but 
otherwise, I would imagine there are squillions of in-house libraries (or more 
likely in-app procedures) for doing stuff, all repeating what has been done 
elsewhere. (cf. MapBasic, where source is readiy available, .MBX are readily 
available etc.). MapX did allow a Map object to be passed to an OCX or DLL, so 
not sure why nothing happened in this regard?? 

One good example of the MapX library deficiency is printing a map - this is a 
classic case where someone writing a library to handle margins, different 
paper size, orientation, adding legends, to scale or fixed width etc. etc. 
would have saved gazillions of man-hr developement in the mapx world. Even if 
say a generic VB version using SDK calls was available in source form, 
converting this to other languages for a particular job would be easy compared 
to writing from scratch. I suspect there are a lot of very average looking MapX 
output maps sitting on people's desks, simply because it was too time-consuming 
to do properly.

What is going to prevent the MapX code graveyard happening with .NET?

2. I agree, .NET will be great for the current web / mapx developers and many 
mapbasic applications, building stand-alone applications.
I am looking for an answer for the following traditional method of working on 
the Desktop -

Currently, I am sure many people are used to the approach of building a map in 
MI pro through application of many MBX tools. eg. Add a grid, add a north 
point, add nice labels. Even big applications are supported by smaller and 
useful tools to complete the job.

It seems that with the classes provided in the MapInfo.Data namespace, two apps 
can concurrently access a native MI table and with TableAccessToken and events 
for insert,delete etc., manage concurrent use. Am I reading too much into this 
or does this really solve the shared MI table problem? After all, the MI tables 
still represent the fastest way of accessing map data. What are the performance 
implications (if any) of the ADO.NET implementation of MI native tables?

If my understanding is correct, even with MI .NET and a lot of specialised .NET 
EXEs, the problem you have is the shared map or layout. You build a map in 
MapInfo Professional .NET. To do anything more, you would need to save a MWS, 
close everything, run the NorthPoint EXE. which also needs to show a map and 
have some interaction with the user, save a MWS. Then reopen MWS in MI .NET to 
do more editing stuff. So, you can (can you?) pass a Map object to another app 
(as a DLL for eg.)? If say a NorthPoint DLL modifies the map, do the map 
event handlers trigger in the calling app? Is MIPro.NET going to be smart 
enough to allow an EXE to fiddle with a map sitting in an open window?

3. Who is going to convert the many useful MapBasic apps to .NET? Who is going 
to define the interface to make them widely usable? 

4. When I come to port MapX applications, are there tools to assist the 
otherwise tedious exercise?

5. What are the licensing implications of someone say, writing and selling 
NorthPoint.dll which provides a function call to accept a map object and add a 
feature object to that map. Does the DLL author need to pay licencing fees, or 
does the calling app licence cover this. (There are no fees distributing a 
.MBX).



Phil.

  - Original Message - 
  From: Bill Thoen 
  To: MapInfo-L 
  Sent: Thursday, December 16, 2004 1:57 PM
  Subject: MI-L Dot NET and the Future of MapInfo Applications


  In an effort to see where MapInfo is going with this dot-NET thing, I have
  been fooling around with Microsoft's Visual Studio C# IDE and MapInfo's 
  MapXtreme 2004 free trial package. So far, all I have to say is that this 
  development environment really rocks!

  I had a few misconceptions about MapXtreme too. Turns out that your MX
  applications run just fine on the desktop just like any normal local
  Windows executables (because that's exactly what they are.) I thought you
  had to do everything via a web server, like it or not. You don't. However,
  if you DO like building distributed Internet applications, you can run
  your application over the web too. The core functions are designed to work
  in either environment.

  It supports normal *.TAB files, with all the attributes you want (unlike
  MapX which can't build a TAB file with more than one attribute.) Of
  course, you also have access to the entire ADO.NET suite of class
  functions too, so you might want to think about going beyond the old *.TAB
  file.

  I wasn't sure of this, but it seems to be true. 

Re: MI-L Re: RE:MI-L Off-topic: c++ porting problem- gnu c++ to MS .net c++

2004-11-19 Thread Phil Waight
MessageWarren,

Appreciate the detailed info you have provided.

Regards.
  - Original Message - 
  From: Warren Vick, Europa Technologies Ltd. 
  To: 'Phil Waight' 
  Cc: [EMAIL PROTECTED] 
  Sent: Friday, November 19, 2004 7:24 PM
  Subject: RE: MI-L Re: RE:MI-L Off-topic: c++ porting problem- gnu c++ to MS 
.net c++ 


  Hello Phil,.

  I think I can help you with the second part of your query.

  The error is actually quite a good one but the reason why the warning is 
produced needs a little background information on how C++ implements OOP. The 
error is generated because your class has members that are pointers... 
distance, depotdist and name. Obviously these are assigned or allocated space 
somewhere in your class methods. The problem is, however, that you do not have 
a copy constructor or assignment operator method (these are the two the warning 
complains about). So, with the absence of these, when you construct a copy, or 
assign, an object of class Gene, a binary copy of the object is made in memory. 
The danger here is that the pointer values will be copied to the new object and 
you will end up with two objects which internally have pointers directed to the 
same space. i.e. change one and the other will change too. This is generally, 
but not always, undesirable and could cause some nasty bugs which are difficult 
to track down.

  The solution is to always have a copy constructor and assignment operation 
function is your classes. It's generally good OOP practice.

  As for a dummy's guide to the errors, I'm afraid it's just a case of 
experience. If it was easy, C++ development wouldn't be regarded as a value 
skill!

  Regards,
  Warren Vick
  Europa Technologies Ltd.
  http://www.europa-tech.com
-Original Message-
From: Phil Waight [mailto:[EMAIL PROTECTED] 
Sent: 19 November 2004 04:45
To: David Langley
Cc: [EMAIL PROTECTED]
Subject: MI-L Re: RE:MI-L Off-topic: c++ porting problem- gnu c++ to MS 
.net c++ 


Dave,

That change made the code more readable and pointed me in the right 
direction. I tried  the -pedantic switch in gcc. 

chromo.cc:15: error: ISO C++ forbids array dimensions with parenthesized 
type in new

So: 
myChromoPool = new pChromo [popSize];
now works in VS.

Thanks for the help. I have attached the header file for the other problem 
if you're able to look at that.

Phil.
  - Original Message - 
  From: David Langley 
  To: [EMAIL PROTECTED] 
  Cc: [EMAIL PROTECTED] 
  Sent: Friday, November 19, 2004 9:31 AM
  Subject: RE:MI-L Off-topic: c++ porting problem- gnu c++ to MS .net c++ 


  Phill,

  try using a typedef (a synonym for another type) declaration as a pointer 
to 
  the Chromo vector

  i.e

  typedef Chromo* pChromo ;

  then change your code to
  pChromo *myChromoPool ; // Chromosome vector
  myChromoPool = new (pChromo)[popSize]  ;

  Not sure about the second problem as I would have to see the header file.

  Best Regards,

  Dave

  David P. Langley
  Director of Programming Services

  Mapping Solutions, LLC
  4660 S. Hagadorn Rd.
  Suite 120
  East Lansing, MI 48823
  USA

  Voice: (+1) 517-332-7735
  Cell:  (+1) 517-402-3238
  Fax:   (+1) 517-332-1329

  Email: [EMAIL PROTECTED]
  SMS:  5174023238 (@tmomail.net)

  Visit our website: www.mappingsolutions.com

  *** Need inexpensive GDT and NavTech street-level data for North America 
and 
  Europe? Check out Map-In-A-Box at http://www.mapinabox.com ***
  *** Map-In-A-Box Year-End Blowout!... Map-In-A-Box is on Sale Until 
December 
  31, 2004.. Check out Map-In-A-Box at http://www.mapinabox.com *** 



MI-L Off-topic: c++ porting problem- gnu c++ to MS .net c++

2004-11-18 Thread Phil Waight
To: Any c++ programmers who'd care to comment

I am a beginner at c++ but have a very useful program written (by others) in 
gnu c++ which I have worked with for a a while and modified successfully. Now 
have MS.net VS installed and wanted to port.

Alas, compiler errors galore. I've fixed most problems but have what seems to 
be coding errors in the original program which werent detected by gnu c++. BTW, 
there is an MSDN article quite critical of standard-conformance in MS.net c++ 
(ref. cl.exe Episode XIII: Attack of the Standards). Dont know if this is 
relevant here - probably not.

PROBLEM 1:

Declaration in class public section in header file is:
Chromo **myChromoPool; // Chromosome vector
Problem on this line in class definition:
myChromoPool = new (Chromo *)[popSize];

 The MS error reported is:
error C2143 syntax error: missing ';' before '['

popSize is properly declared and assigned.

PROBLEM 2:

Found the gcc switch -Weffc++ which reports on style problems. This reports:

gene.h:15: warning: `class Gene' has pointer data members
gene.h:15: warning:   but does not override `Gene(const Gene)'
gene.h:15: warning:   or `operator=(const Gene)'

Any clues on what this means? There are no CONST declarations  in gene.h, so am 
guessing there is some sort of implicit declaration.

Any references to on-line docs on c++ coding practice or deciphering compiler 
error messages for dummies?

thanks
Phil.


MI-L Re: RE:MI-L Off-topic: c++ porting problem- gnu c++ to MS .net c++

2004-11-18 Thread Phil Waight



Dave,

Thatchange made the code more 
readableand pointed me in the right direction. I tried the -pedantic 
switch in gcc. 

"chromo.cc:15: error: ISO C++ forbids array 
dimensions with parenthesized typein new"

So: 
myChromoPool = new pChromo 
[popSize];
now works in VS.

Thanks for the help. I have attached the header 
file for the other problem if you're able to look at that.

Phil.

  - Original Message - 
  From: 
  David Langley 
  To: [EMAIL PROTECTED] 
  
  Cc: [EMAIL PROTECTED] 
  Sent: Friday, November 19, 2004 9:31 
  AM
  Subject: RE:MI-L Off-topic: c++ porting 
  problem- gnu c++ to MS .net c++ 
  Phill,try using a typedef (a 
  synonym for another type) declaration as a pointer to the Chromo 
  vectori.etypedef Chromo* pChromo ;then change your 
  code topChromo *myChromoPool ; // Chromosome vectormyChromoPool = new 
  (pChromo)[popSize] ;Not sure about the second problem as I would 
  have to see the header file.Best Regards,DaveDavid P. 
  LangleyDirector of Programming ServicesMapping Solutions, 
  LLC4660 S. Hagadorn Rd.Suite 120East Lansing, MI 
  48823USAVoice: (+1) 517-332-7735Cell: (+1) 
  517-402-3238Fax: (+1) 517-332-1329Email: [EMAIL PROTECTED]SMS: 
  5174023238 (@tmomail.net)Visit our website: www.mappingsolutions.com*** 
  Need inexpensive GDT and NavTech street-level data for North America and 
  Europe? Check out Map-In-A-Box at http://www.mapinabox.com ** 
  Map-In-A-Box Year-End Blowout!... Map-In-A-Box is on Sale Until December 
  31, 2004.. Check out Map-In-A-Box at http://www.mapinabox.com *** 

// gene.h
// Declaration of class Gene
// Thomas Pederson, 950505

#ifndef GENE
#define GENE

#include global.h
//#include stream.h
#include iostream

//using namespace std;

class Gene
{
   public:
   Gene(char *_name, coord_t _x, coord_t _y,
unsigned int _index, unsigned int _distVecLength,
int _pointval, int _depotd);//v1.2
   ~Gene();
   
   // Calculates Eucledian distance between this gene and _gene and returns the 
value.
   distance_t calculateDistanceTo(coord_t routed, Gene _gene);

   // store distance from this Gene to depot.
   distance_t storeDepotDist(coord_t routed, int depotid);

   // Returns Eucledian distance between this gene and _gene.
   distance_t distanceTo(Gene _gene);

   // Returns this gene's index in original chromosome pool.
   unsigned int getIndex() {return index;}

   // Returns nearest depot.
   unsigned int getNearestDepot() {return nearestdepot+1;}

   // Returns this gene's name.
   char *getName() {return name;}

   // Returns this gene's depot counte.
   int getDepotCnt() {return depotcnt;}

   // Returns depot distance for this gene.
   distance_t getDepotDist(int depotid) {return depotdist[depotid];}

   // store distance from this Gene to depot.
   distance_t getNearestDepotDist(Gene _gene);

   // Returns this gene's point value.
   int getPointVal() {return pointval;}

   // Prints gene information to stream.
   friend std::ostream operator(std::ostream outStr, Gene gene);
   
   private:
   distance_t *distance; // distance vector
   distance_t *depotdist; // depot distance vector
   unsigned int distVecLength; // length of distance vector
   char *name; // name of gene
   coord_t x,y; // gene's coordinates
   unsigned int index; // gene's index
   /* v 1.2 Add Depot distance array,  Point value (-val = deliver, +val = 
pickup) */
   int depotcnt;// depot count from this point
   int pointval;// action at point value eg. +3 = pickup 3 bins
   int nearestdepot;// nearest depot on last check
};

#endif
















-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 14129

Re: MI-L Dead-ends and dangles

2004-10-26 Thread Phil Waight
spatialSQL (www.acenet.com.au/~pwaight/spatialsql.htm) will locate dead-ends
and snap unintended line ends to the road network.
The logic is that the free ends operator without an update operator
locates ends outside the tolerance (legitimate dead ends). If the tolerance
is zero, it will also locate dangle line ends.
Free ends with a snap update locates ends within the tolerance and snaps
to the network, optionally splitting the snapped-to line at the connect
point.
Similar approach with points and a line network.

Regards.
___
SPATIAL PROJECTS

Ph (61)02 48617977
  0418 647697
Fx  (61)02 48617977
Email : [EMAIL PROTECTED]
Web: www.acenet.com.au/~pwaight


- Original Message -
From: Selves, Simon [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, October 26, 2004 6:18 PM
Subject: MI-L Dead-ends and dangles


Hi All,

Does anyone have any idea how to isolate/select Dead_ends (i.e.
Cul-de-sacs etc.) in a road network, in Mapinfo? I've tried all sorts of
queries, but cannot seem to select either the dead-ends or their inverse.

I'm also trying to construct a spatial query to select line objects that are
not connected to a continuous network i.e. hanging road segments. Anyone
with any ideas?

I have a basic knowledge of Mapbasic so am not adverse to running some
scripts if necessary.

Much obliged for your time.

Simon


**
This email and any attached files are confidential. They are intended solely
for the use of the individual or entity to whom they are addressed. If you
have received this email in error, please notify the sender by return email,
and delete the original.

All outgoing emails and attached files are virus scanned, but we do not
represent that this email and any attached files are free from computer
viruses or other defects. Further, we do not accept any liability for any
damage caused by this email or attachments.


-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 13825


-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 13838



Re: MI-L tools

2004-10-18 Thread Phil Waight
Uffe,
spatialSQL is US$195, single PC. Price is on the rego screen, but thanks for
the reminder - I'll add it to the web page.

Phil Waight
___
SPATIAL PROJECTS
Ph (61)02 48617977
  0418 647697
Fx  (61)02 48617977
Email : [EMAIL PROTECTED]
Web: www.acenet.com.au/~pwaight




- Original Message -
From: Uffe Kousgaard [EMAIL PROTECTED]
To: Phil Waight [EMAIL PROTECTED]; Rob Healy
[EMAIL PROTECTED]
Cc: Mapinfo-L [EMAIL PROTECTED]
Sent: Monday, October 18, 2004 7:09 PM
Subject: MI-L tools


 To Rob Healy and Phil Waight,

 It looks like some very interesting and impressive tools (spatialSQL and
 MappaMI) you are doing downunder. Does the price have to be a secret or
 is it just me, that can't find them at your websites?

 spatialSQL: www.acenet.com.au/~pwaight/spatialsql.htm
 MappaMI: www.meridian-gis.com.au

 Regards
 Uffe



-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 13756



Re: MI-L Polygon Analysis

2004-10-14 Thread Phil Waight
Darrin,

spatialSQL locates region visual centroids (see list emails around 24 Sep
04) 
www.acenet.com.au/~pwaight/spatialsql.htm

There are 2 ways visual centroids are applied in spatialSQL, one from the
menu as a free tool and the other embedded in a label declutter function.

Phil Waight
___
SPATIAL PROJECTS
Ph (61)02 48617977
  0418 647697
Fx  (61)02 48617977
Email : [EMAIL PROTECTED]
Web: www.acenet.com.au/~pwaight



- Original Message -
From: Darrin Clement [EMAIL PROTECTED]
To: Mapinfo-L [EMAIL PROTECTED]
Sent: Monday, September 13, 2004 11:13 PM
Subject: MI-L Polygon Analysis


 Hello everyone,

 Is there an efficient way to find the most open part of a
 polygon?  In other words, for odd-shaped polygons, we're
 trying to find the location that represents the point
 farthest from any edge.  An obvious application would be for
 the best label placement (rather than the traditional
 centroid).

 We could use a least squares method against the nodes for
 individual polygons but when doing this for hundreds or
 thousands of polys, such a process is not efficient.

 Anyone have a tool out there that does this?

 Thanks.

 Darrin
 ***
 www.maponics.com


 -
 List hosting provided by Directions Magazine | www.directionsmag.com |
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 Message number: 13284



-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 13719



MI-L spatialSQL v1.50 - region visual centroids

2004-09-23 Thread Phil Waight
See a definition of region centroids: 
http://www.acenet.com.au/~pwaight/spatialsql_centroids.htm
Implemented to assist label placement: 
http://www.acenet.com.au/~pwaight/spatialsql_labels.htm
Download: http://www.acenet.com.au/~pwaight/spatialsql_download.htm

The default and visual centroid function is available from the spatialSQL menu as a 
free tool. The label functions are available as a 30 day trial.

Phil.
___
SPATIAL PROJECTS 
Ph (61)02 48617977
  0418 647697
Fx  (61)02 48617977
Email : [EMAIL PROTECTED]
Web: www.acenet.com.au/~pwaight




MI-L spatialSQL - label declutter

2004-09-03 Thread Phil Waight
spatialSQL now includes an update to declutter point label maps. This has been 
included as a productivity tool to remove some of the tedium of manual label editing. 
It is one step better than the so-called naive method provided by autolabel, and 
uses a technique which involves shifting an overlapping label to the first available 
free position of the 8 candidates. It doesnt provide an optimum solution, but pretty 
much guarantees a better-looking map. It is not quick but faster than I can shift 
labels around maps.

Examples of the positioning problems that are resolved can be seen here:
http://www.acenet.com.au/~pwaight/spatialsql.htm

and include:
1. Repositioning labels that intersect linear or point features in the same or other 
layers in the current map.
2. Repositioning labels not shown due to points at the same location.
3. Label shift for all point layers in the current map.
4. Use of leader lines if these are defined in the layer - label control. Quite 
important when L-R justification cannot be relied on to pick the associated point.

Whilst looking for what was about in labelling these days, I noticed that Evername 
seems to have gone/transformed. The reference desktop labelling product seems to be 
Label-EZ, but there are quite a few of the GIS developer kits that now seem to have 
more advanced labelling facilities. Couldnt see anything in mapinfo-l archives on this 
topic? The web mapping trend seems to be fixed zoom, pre-published map images where 
the cpu time can be spent in composing good looking maps. 

oh - and one more vote for anti-aliased labels in MapInfo.

Phil.



Re: MI-L Updating fields with functions

2004-07-18 Thread Phil Waight
Cant answer your specific question re the expression_list portion of a
select. Considering the number of other places within SQL statements
functions can be used, might be an oversight. Computed fields display and
update correctly if based on native functions. (select Left$(cola,5) from
...). Replacing the native function with your own same-named version doesnt help.

In other places, a statement such as:
Add column tabA (col1) from tabA set to cust_funct(args) where 
builds a correct result and responds to data changes as long as the program is still 
running.
Possibly because the derived column needs special treatment, it is supported here ONCE
but not as a Select computed column.

I have used custom functions within spatialSQL (updated version 1.21 now available)
and have put a summary here: (http://www.acenet.com.au/~pwaight/spatialsql_custfns.htm)
of some of the things I have learned. The page also has test program source for 
download.

Once wiki is going, a topic covering this would be useful as the scope of this hasnt 
been fully covered  in anything I've seen.

Phil.


- Original Message -
From: Bill Thoen [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Sunday, July 11, 2004 2:01 AM
Subject: MI-L Updating fields with functions


 Updating table fields with functions is a much faster techique than
 stepping through a table record by record to change a field. I was curious
 to see how far the technique could be stretched and discovered that using
 a function in a select doesn't seem to work, but in an update, it works
 fine. Why is this? Anyone know?

 Here's a test program illustrating the problem:

 Declare Sub Main
 Declare Function Reverse (ByVal sName As String) As String

 Sub Main
 Dim sFile As String
 ' Open the States table and build a new table using STATES.State_Name
 ' passed to a function that returns a string. The string returned from
 ' that function will be used to populate a temporary table and a
 ' permanent one. Why does the temporary table not get filled, while
 ' rows are created?

   ' Set up and open the source table
   Close All
   sFile = FileOpenDlg (, States.Tab, TAB,
   Please open the STATES table)
   If sFile =  Then
 Exit Sub
   End If
   Open Table sFile As STATES

   ' This works only rarely (but sometimes it does!)
   ' Usually all rows are blank.
   Select Reverse (State_Name) emaN_etatS
 From STATES Into TEMP NoSelect

   ' This does work
   Create Table PERM (
 emaN Char(20)
   )
   Insert Into PERM Select Reverse (State_Name) From STATES
   Commit Table PERM

   ' View the results
   Browse * From PERM
   Browse * From TEMP
 End Sub


 Function Reverse (
   ByVal sName As String) ' Input string
   As String  ' Returned word spelled backwards
 'Reverses letters in a string
 Dim sRevWord As String
 Dim i, j As Integer

   j = Len(sName)
   For i = j To 1 Step -1
 sRevWord = sRevWord + Mid$(sName, i, 1)
   Next

   Reverse = sRevWord
 End Function


 ---
 - Bill Thoen



 -
 List hosting provided by Directions Magazine | www.directionsmag.com |
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 Message number: 12542



Re: MI-L Splitting polylines

2004-06-21 Thread Phil Waight
spatialSQL has fairly comprehensive functions for snapping and splitting.
Lines to lines, points to lines, lines/points to regions, single/multiple
tables and with tolerances specified. It also has the ability to produce a
topology table with object-object connections that could be used within an
application.

30 session free use

http://www.acenet.com.au/~pwaight/spatialsql.htm
___
SPATIAL PROJECTS
Email : [EMAIL PROTECTED]
Web: www.acenet.com.au/~pwaight



- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, June 21, 2004 6:33 PM
Subject: MI-L Splitting polylines


Dear list

How can I split polylines automatically if I have a point table and a
polyline table? The points do not lie exactly on the polylines. How could I
do that automatically or do I have it to do manually?
I have tried with Polyline Split within MI but got the error message Split
with polyline cutters must form contiguous section polyline. Operation
canceled.

Which tool or function could do that job?

I appreciate any help then I have to split several thousand polylines.

With kind regards

christian
christian cattaneo
Bundesamt für Verkehr BAV
Bollwerk 27/29
CH-3003 Bern
e-mail: [EMAIL PROTECTED] oder
[EMAIL PROTECTED]

tel: +41 31 325 12 78


-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 12308


-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 12327



MI-L CIRCLES, POINTS, LINES,etc. , use of

2004-06-17 Thread Phil Waight
My opinion on this seems to be at odds with a number of others and is possibly wrong, 
but anyway it is important to understand the scope  limitations of the system we work 
with .

The argument that circles should be avoided as a geographic object is as spurious as 
connecting any two points with a straight line and using the line as an object. The 
only time the line is valid in any coordinate space is if it represents a 
line-of-sight between two surveyed points (and even then, light bends). As soon as it 
represents a property boundary for example, it is really valid only at its ends. 
Similarly with a circle, you could possibly say that at the time it is created, the 
centre and one point on the circumference were legitimate points. In both cases, they 
are just representations of reality and obviously have their place. If a circle or any 
object is drawn and used in its native projection system, it is defined and remains 
true in that cartesian system. How good it represents reality is another issue.

So, my argument is the more object types the merrier, as long as they are all treated 
as the approximations they really are. And bring on more metadata (and metadata 
analysis tools), so we have good descriptions of how the data can be used.

An occasion when circles (and other objects) may be a problem is when reprojected from 
the system they were originally defined in. For example, all objects distort as they 
move away from the central meridian of a UTM system. Because circles are modelled as 
an ellipse within a fixed orientation rectangle, the rotation that occurs, because of 
the projection maths, off the central meridian cant be represented. The ability of 
MapInfo to reproject so readily has some mixed blessings. The answer here is to limit 
use of mixed projections or be aware of limitations and impact on length, area and 
object relationships. It'd be nice if there were a summary somewhere of this stuff - 
may be in Wiki eventually.

Whilst playing with this, I did notice that the select and display representations of 
a circle drawn in say UTM and displayed in geographic projection, are different!? This 
difference is more obvious, the further from the central meridian you go (say 300 km, 
with a 100km radius). In spite of the issue with circles noted above, this would seem 
like a bug (in 6.5). Why else would two apparently cosmetic versions (display/select) 
of a circle be different. It can be reproduced by clicking from the circumference to 
the centre. The circle doesnt actually get selected until closer to the center than 
the circumference.

Phil.

Re: MI-L returning the coordinates of 2 intersection points of 2 overlapping circles

2004-06-12 Thread Phil Waight
Jacques,

True, but  circles as objects are ideal for testing, for example,  whether a
point is within a given distance from an object of any type. As far as I can
tell    Circle intersects any_object .tests the circle as a
circle not a circular region of current resolution, so by implication will
be computed more quickly than a region. Circles are also stored in a compact
form (center, 2 radii). Circles for small distance computations are
invaluable. For larger distances, circles are of value depending on what
they represent and how precise the radius is in the first place.

Some of the history of MI objects might be tied to their existance in MS GDI
library - viz. circles, arcs, rounded rectangles. When it comes to objects
of limited geographic value that relic from the past, the rounded
rectangle -  has survived into MapXtreme 2004! This does mean there is hope
for layouts in MapXtreme though! The list of classes in the geometry
namespace in mpx04 is a sight to behold. Trouble is I dont know yet whether
to applaud or cringe (at the complexity).

Phil.

- Original Message -
From: Jacques Paris [EMAIL PROTECTED]
To: Lawley, Russell S [EMAIL PROTECTED];
[EMAIL PROTECTED]
Sent: Saturday, June 12, 2004 1:05 AM
Subject: RE: MI-L returning the coordinates of 2 intersection points of 2
overlapping circles


 It is amazing that people want to handle circles as if they were
 geographic objects. They do not exist in MI with properly defined
 contours, just a center and a radius, and they are displayed on the fly
 with some approximation. Hence, my hesitation to the cartesian space
 solution; the computed points may not exist really as part of the circles.

 Before Mi will release information about intersection between a circle
and
 another linear object, it internally transform it (them eventually) to
 polyline(s) and will find the intersections between resulting objects,
These
 are approximation of the circle shape in a polyline with a number of nodes
 defined by the Set Resolution statement (by default 100 nodes per
circle);
 in this implicit transformation, the original circles are not modified.
The
 coordinates of the intersections will vary thus for different resolutions,
 and the corresponding points with not be on the circles except if by
 chance, each intersection will find itself on a node for both
 convertedtopline circles.

 One easy approximation will thus be to do the following

 Dim oint as object
 Oint=overlap(circle1,circle2)

 X and y if the intersections would be
 Objectgeography(oint, OBJ_GEO_LINEBEGINX)
 Objectgeography(oint, OBJ_GEO_LINEBEGINY)
 Objectgeography(oint, OBJ_GEO_LINEENDX)
 Objectgeography(oint, OBJ_GEO_LINEENDY)

 One must make sure that an object was created (that there is an
 intersection) either by testing previously that the distance between the
two
 centers is  sum of radii, or by error trapping on the objectgeography
 function.

 Notice that the overlap function returns an object defined by its end
points
 (the intersections) of the circles, whereas the intersectnodes() will not
 work on circles; they will have to be to previously converted explicitly
to
 polylines.

 A last detail. Experiment with two circles and add the results of the
 operation to the map. Zoom on one of the extremities; you will most
probably
 see that it is not on any of the original circles.

 As a general conclusion: never consider circles as geographical objects
and
 process them thinking that are precise.

 Jacques Paris
 e-mail  [EMAIL PROTECTED]
 MapBasic-MapInfo support  http://www.paris-pc-gis.com

 -Original Message-
 From: Lawley, Russell S [mailto:[EMAIL PROTECTED]
 Sent: 11-Jun-04 09:01
 To: [EMAIL PROTECTED]
 Subject: RE: MI-L returning the coordinates of 2 intersection points of 2
 overlapping circles

 Erin,

 you should look at the intersectsnodes function (if you are using
Mapbasic).

 this will return a polyline for two intersecting ellipses, the start and
end
 points of which will define the coordinates of the two 'crossing points'.
 (use the objectinfo or objectgeography functions for finding these values
 from teh line)


 regards
 r





 *
 This  e-mail  message,  and  any  files  transmitted  with  it, are
 confidential  and intended  solely for the  use of the  addressee. If
 this message was not addressed to  you, you have received it in error
 and any  copying,  distribution  or  other use  of any part  of it is
 strictly prohibited. Any views or opinions presented are solely those
 of the sender and do not necessarily represent  those of the British
 Geological  Survey. The  security of e-mail  communication  cannot be
 guaranteed and the BGS accepts no liability  for claims arising as a
 result of the use of this medium to  transmit messages from or to the
 BGS. .http://www.bgs.ac.uk
 

Re: MI-L RE: Buffering query - v2

2004-05-30 Thread Phil Waight
I think the general problem is called the  Geodesic ham sandwich. A reference is: 
www-ma2.upc.es/~hurtado/ham.pdf. I didnt understand the words in this paper but 
fortunately there are pictures. So with any 2 regions that may or may not intersect, 
itspossible to find a median line string which you could then use to reform the 
regions.

I think you are right in that buried in a Voronoi diagram of all the points might be a 
solution. But how do you find it? (In cases of sets of points from circles it might be 
easier, but what about regions).

Next question is Is there another solution using good old trusty MapInfo buffers and 
a lot of cpu cycles?

ps. I googleflopped on the search: MapInfo  ham sandwich.

Phil.



- Original Message - 
From: Robert Crossley [EMAIL PROTECTED]
To: Apers Mathieu [EMAIL PROTECTED]
Cc: MapInfo List [EMAIL PROTECTED]
Sent: Monday, May 31, 2004 9:07 AM
Subject: Re: MI-L RE: Buffering query - v2


 Mathieu,
 
  From your comment, I'd imagine that what you are after is the equivalent 
 of a cross between buffers and veroni polygons for points, that is a 
 buffer that follows the mid-line between two polygons if they are less 
 than two buffer widths apart.
 
 I posted a question about this a while ago and did not get any good 
 leads.  I would actually be interested in making such a tool, but could 
 not think of an efficient way of proceeding with this.  One thought was to 
 drop the polygons to constituent points and create veroni polygons of the 
 points.  It did not work for points which were coincident.  I really did 
 not spend much time on it, so would be interested in thoughts.  As I write 
 this, some new ideas are emerging from the weekend murk.
 
 BTW, most of the object commands are available throught the objects menu 
 in MapInfo.  MapBasic generally justs automates these.
 
 r
 
 
 On Mon, 31 May 2004 10:08:47 +1200, Apers Mathieu 
 [EMAIL PROTECTED] wrote:
 
  ok so it won't let me attach Doc files either (or PDFs). i give up.
 
  -Original Message-
  From: Apers Mathieu [mailto:[EMAIL PROTECTED]
  Sent: Monday, 31 May 2004 10:07 AM
  To: 'Mapinfo help forum (E-mail)'
  Subject: RE: MI-L RE: Buffering query - v2
 
 
  Thanks to those of you who replied - unfortunately for me, i have no
  practical knowledge of Mapbasic and hence wouldn't have the foggiest 
  idea of
  how to use Intersectnodes in Mapbasic, and i need seperate buffers for 
  each
  object so one buffer for all objects wouldn't work either.
 
  See attached file:
 
  I would have thought there'd be a function that builds buffers like this,
  'cause surely I'm not the only one who needs to buffer objects and have 
  the
  buffers meet but not overlap???
 
  TIA
 
  Cheers
  Mathieu
 
 
 
 
  This email with any attachments is confidential and may be subject to 
  legal
  privilege.  If it is not intended for you please reply immediately, 
  destroy
  it and do not copy, disclose or use it in any way.
 
 
 
  This email with any attachments is confidential and may be subject to 
  legal
  privilege.  If it is not intended for you please reply immediately, 
  destroy
  it and do not copy, disclose or use it in any way.
 
  -
  List hosting provided by Directions Magazine | www.directionsmag.com |
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  Message number: 11961
 
 
 
 
 -- 
 
 Robert Crossley
 Agtrix P/L
 9 Short St
 PO Box 63
 New Brighton 2483
 Far Southern Queensland
 AUSTRALIA
 
 153.549004 E 28.517344 S
 
 P: 02 6680 1309
 F: New Connection
 M: 0419 718 642
 E: [EMAIL PROTECTED]
 W: www.agtrix.com
 W: www.wotzhere.com
 
 -
 List hosting provided by Directions Magazine | www.directionsmag.com |
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 Message number: 11962
 
 

Re: MI-L MI6.5: 'LINEobject INTERSECTS POINTobject' actually evaluated as 'MBR(LINEobject) INTERSECTS POINTobject'

2004-05-09 Thread Phil Waight
Sorry Lars,
I did wander - and mostly off the subject.
1. There appears to be a bug in MapInfo pro v6.5 with line objects, point
objects and intersect operator.
2. I believe MapInfo could do a point on line intersect where the point lies
between node points. (It doesnt currently).
3. If anybody believes the bug in 1 is not a bug, there is at the very least
an inconsistency with the way lines and polylines are treated .
4. The not intersects case between point and line could well be used
regularly in some areas and thus should be drawn to people's attention.
Phil.

- Original Message -
From: Lars V. Nielsen (GisPro) [EMAIL PROTECTED]
To: Phil Waight [EMAIL PROTECTED]
Sent: Monday, May 10, 2004 1:49 AM
Subject: Re: MI-L MI6.5: 'LINEobject INTERSECTS POINTobject' actually
evaluated as 'MBR(LINEobject) INTERSECTS POINTobject'


 Hi Phil,

 I'm afraid you totally lost me here. I'm not sure whether there is
something in it for me to answer ?

 I wasn't critizicing anyone or anything, just pointing out that in MapInfo
Pro (1) simple lines are ok and (2) arcs et.al. cannot
 really be used for spatial operations. The founders of MapInfo (and thus
the data model) probably had some good reasons why they
 chose to implement things the way they did.

 I'm certainly aware that other curves than straight lines are of interest
in mapping, but that's a purely theoretical discussion
 when considering MapInfo. We have judicial boundaries defined as circle
arcs here in Denmark, which make perfect sense, but handling
 those adequatly in MapInfo is a pain sometimes. Usually they just get
converted to polylines and regions with some sort of measure
 of precision.

 The only item that bugs me in your reply is the talk about the definition
of a straight line is. This is much too theoretical for
 anyone doing real down-to-earth work imho. If the end points are expressed
in some projected coordinate system, the straight line is
 always calculated as if the projection grid was flattened. No great
circles or geodesics come into considerations there at all! If
 your reference system is lat-long, geodesics are your answer, great
circles are just handy approximations. It should be obvious from
 this that I'm not a subscriber to the limitless discussions on such
subjects accompanying GML v.3 ;-)

 Best regards/Med venlig hilsen
 Lars V. Nielsen
 GisPro, Denmark
 http://www.gispro.dk/
 http://www.gispro.biz/

 - Original Message -
 From: Phil Waight [EMAIL PROTECTED]
 To: Lars V. Nielsen (GisPro) [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Sent: Sunday, May 09, 2004 3:13 AM
 Subject: Re: MI-L MI6.5: 'LINEobject INTERSECTS POINTobject' actually
evaluated as 'MBR(LINEobject) INTERSECTS POINTobject'


  Lars,
 
  There's no doubt that 'truth' is relative to your frame of reference -
water
  views to a real estate agent might amount to potholes in the street on a
  rainy day, my up is your down, religion, politics (sigh)
  and the only time a point is really on a line is if sitting astride a
barbed
  wire fence. So, maybe the best we can ever hope for is consistency??
 
  In this case:
  Let's say you have a cable network layer and a junction box layer. Built
  properly in the GIS, a box intended to be shown as connected to the
network
  will be snapped to one of the line mid/end points on the layer.
Incomplete
  portions of the network will have boxes floating.
 
  We want an SQL to find all junction boxes connected to the network:
  Select JunctionBoxes where JunctionBoxes.obj intersects any(select obj
from
  cables) ,
  the result is correct for a cable network of polylines and unpredicable
for
  a network with lines in it. (a junction box not connected to the network
  will be selected because it is within the MBR of one line)
 

 --
--
  ---
  Point on Line is an interesting one. A definition of a line in the
digital
  world (cartesian system) could be:
  1. a straight line connecting 2 points in a grid space. The grid space
is
  defined by the stored precision of the coordinate system you are using
  (approx 4 cm for an unbounded lat/long coordsys).  AND
  2. A thickness represented by a buffer of width (half-width?) of the
  precision of the coordinate system. thickness means that operations on
the
  line are performed on a region of this thickness.
 
  The point is that a program could place a point on a line as long as
it
  was on or within the buffer (in pt 2) and a program could test for point
on
  line without needing an artificial point created on the line. Regardless
of
  the precision of the coordinate system you are working with : 2 bits,
32, 64
  etc, the same approach applies. (The beauty of MI is that the Float data
  type has a few extra significant digits than the stored coord, so
testing
  for within the line 'thickness' ought to be simple - of course, the
actual
  thickness is known but arbitrarily small

Re: MI-L MI6.5: 'LINEobject INTERSECTS POINTobject' actually evaluated as 'MBR(LINEobject) INTERSECTS POINTobject'

2004-05-08 Thread Phil Waight
Lars,

There's no doubt that 'truth' is relative to your frame of reference - water
views to a real estate agent might amount to potholes in the street on a
rainy day, my up is your down, religion, politics (sigh)
and the only time a point is really on a line is if sitting astride a barbed
wire fence. So, maybe the best we can ever hope for is consistency??

In this case:
Let's say you have a cable network layer and a junction box layer. Built
properly in the GIS, a box intended to be shown as connected to the network
will be snapped to one of the line mid/end points on the layer. Incomplete
portions of the network will have boxes floating.

We want an SQL to find all junction boxes connected to the network:
Select JunctionBoxes where JunctionBoxes.obj intersects any(select obj from
cables) ,
the result is correct for a cable network of polylines and unpredicable for
a network with lines in it. (a junction box not connected to the network
will be selected because it is within the MBR of one line)


---
Point on Line is an interesting one. A definition of a line in the digital
world (cartesian system) could be:
1. a straight line connecting 2 points in a grid space. The grid space is
defined by the stored precision of the coordinate system you are using
(approx 4 cm for an unbounded lat/long coordsys).  AND
2. A thickness represented by a buffer of width (half-width?) of the
precision of the coordinate system. thickness means that operations on the
line are performed on a region of this thickness.

The point is that a program could place a point on a line as long as it
was on or within the buffer (in pt 2) and a program could test for point on
line without needing an artificial point created on the line. Regardless of
the precision of the coordinate system you are working with : 2 bits, 32, 64
etc, the same approach applies. (The beauty of MI is that the Float data
type has a few extra significant digits than the stored coord, so testing
for within the line 'thickness' ought to be simple - of course, the actual
thickness is known but arbitrarily small).

To take my pedantry one step further:
If you have 2 points on the surface of the earth and a straight line
between them, this line is strictly only defined by the end points and the
fact that the connecting arc is a great circle. Placement of a point on
the line between the ends should be a mathematical placement of the point
which meets the line definition above (for spherical geometry). As soon as
you create an artificial intermediate node in the line, the line direction
(and definition) changes because of snapping to the nearest point (in the
grid space).

---
From a practical point-of-view there is no reason why a point cant lie on a
line between nodes.

---
Discussion of coordinate systems and precision confirms my thinking that
MapInfo designers decision on 32 bit precision for stored coordinates with
their use of bounds was a masterstroke.  The performance benefits
significantly outweigh any perceived artificial benefit of greater stored
coordinate precision. (In the case above, the only relevance of precision is
knowing what it is!) Often, when we criticize MapInfo technology I think it
tends to be somewhat nitpicky stuff or things that could be fixed in the
next rev. The important thing is that the foundations are so good.

I might conclude my ramble now but a topic for another day is why arcs and
ellipses (parametrically defined objects) should not  be poor cousins to
points, lines and regions.

Phil.





- Original Message -
From: Lars V. Nielsen (GisPro) [EMAIL PROTECTED]
To: Phil Waight [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Saturday, May 08, 2004 7:04 PM
Subject: Re: MI-L MI6.5: 'LINEobject INTERSECTS POINTobject' actually
evaluated as 'MBR(LINEobject) INTERSECTS POINTobject'


 Hi Phil,

 It's not quite as simple as that. In my opinion, the result of an
intersect operation between a line and a point is really logically
 undefined, regardless of the respective positions of the line and the
point. If it works that's great, but I wouldn't depend on it.
 Sort of like the case with the draw order of geographically identical
objects.

 But if your assumption holds, two simple lines (for which an intersection
is definitely defined logically), which have overlapping
 MBR's but not an actual intersection, should yield True when querying with
intersects. But it doesn't.

 dim lineobj1 as object
 dim lineobj2 as object
 set coordsys nonearth units m bounds (-10,-10)(10,10)
 create line into variable lineobj1 (0,0) (1,1)
 create line into variable lineobj2 (1,0) (0.6,0.4)
 print str$(lineobj1 intersects lineobj2

MI-L MI6.5: 'LINEobject INTERSECTS POINTobject' actually evaluated as 'MBR(LINEobject) INTERSECTS POINTobject'

2004-05-07 Thread Phil Waight
List,

Further to a previous email on arc objects not behaving well with spatial operators  
.

A LINE object seems to be treated as an MBR of itself during an intersect test with a 
POINT object.
'
set coordsys earth

dim lineobj as object
dim plineobj as object
dim otherobj as object
dim pointobj as object
dim point_on_lineobj as object
create line into variable lineobj (0,0) (1,1)
create pline into variable plineobj 2 (0,0) (1,1)

create point into variable point_on_lineobj (0.6,0.6)
create point into variable pointobj (0.5,0.7)  ' any point not on 
line but within MBR
create pline into variable otherobj 2 (0.5,0.7) (0.5,0.8)  ' another obj not on 
line but within MBR

print Should evaluate FALSE:  + str$(lineobj intersects pointobj)' FAILS
print Should evaluate FALSE:  + str$(plineobj intersects pointobj)
print Should evaluate TRUE:  + str$(plineobj intersects point_on_lineobj)
print Should evaluate FALSE:  + str$(lineobj intersects otherobj)

'
As in the case of the ARC object, the workaround is to use CONVERTTOPLINE(lineobj) 
first.

Phil.


MI-L Product announcement: spatialSQL for MapInfo Professional (Beta version)

2004-04-29 Thread Phil Waight
spatialSQL provides advanced spatial SQL with operators such as: within, beyond, 
within and beyond, touches, disjoint, equals. Simultaneous update through a set of 
update operators (combine, delete,..). A proximity qualifier allows 'direction' to be 
defined. (eg. all residents on North side of highway xx within 500 metres).
The help file provides usage instructions.

Information at: http://www.acenet.com.au/~pwaight/spatialsql.htm
Download: http://www.acenet.com.au/~pwaight/spatialsql_download.htm

Phil.

___
SPATIAL PROJECTS 
61 Burradoo Rd
Burradoo NSW 2576
Australia 
Ph (61)02 48617977
  0418 647697
Fx  (61)02 48617977
Email : [EMAIL PROTECTED]
Web: www.acenet.com.au/~pwaight



Re: MI-L MI6.5: Arc objects and INTERSECTS operator

2004-04-19 Thread Phil Waight
Thanks to all who responded to this and for the solution 'converttopline()'.
With a table of mixed object types, it would be necessary to do an initial
select of the arcs and convert them before running an SQL, or process within
a MB program.
It would be nice to have an additional set of functions returning objects
which ignored object errors and returned the original [i.e.
convertAnytoPline(point1) returns point1].
I checked a couple of docs and -  MapX CreateArc returns a line feature and
there is no equivalent to converttopline() in MapX. The OpenGIS feature type
spec (1999) has a CURVE as a point list but no arc. So looks like arc will
remain just a drawing mechanism.

Phil.

- Original Message -
From: Jacques Paris [EMAIL PROTECTED]
To: Phil Waight [EMAIL PROTECTED]
Sent: Monday, April 19, 2004 12:24 PM
Subject: RE: MI-L MI6.5: Arc objects and INTERSECTS operator


 Phil,

 Arc, ellipse and rectangle are weird objects because they are not defined
as
 regular objects with nodes etc. Try converting them to regular objects
 before handling them

 Select where converttopline(arc1) intersects converttopline(arc2)

 Jacques Paris
 e-mail  [EMAIL PROTECTED]
 MapBasic-MapInfo support  http://www.paris-pc-gis.com


 -Original Message-
 From: Phil Waight [mailto:[EMAIL PROTECTED]
 Sent: 18-Apr-04 19:42
 To: [EMAIL PROTECTED]
 Subject: MI-L MI6.5: Arc objects and INTERSECTS operator

 List,

 I cant get the INTERSECTS operator to work with arcs in MI 6.5, within an
 SQL statement or as a standalone expression. Whether the arcs cross,
 duplicate one another or do not intersect, the intersects operator always
 returns False. If this is true, must be an indication of the popularity of
 the arc object. Other obscure object types seem to work ok. My projection
is
 lat/long and drwg units are km.

 dim o1 as object
 dim o2 as object

 ' 1. draw 2 intersecting arcs
 ' 2. select first arc
 fetch first from selection
 o1 = selection.obj

 ' 3. select second arc
 fetch first from selection
 o2 = selection.obj

 ' following always returns FALSE regardless of intersect geometry of 2
arcs
 print o1 intersects o2

 Phil.

 ___
 SPATIAL PROJECTS
 61 Burradoo Rd
 Burradoo NSW 2576
 Australia
 Ph (61)02 48617977
   0418 647697
 Fx  (61)02 48617977
 Email : [EMAIL PROTECTED]
 Web: www.acenet.com.au/~pwaight





-
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 11443



MI-L MI6.5: Arc objects and INTERSECTS operator

2004-04-18 Thread Phil Waight
List,

I cant get the INTERSECTS operator to work with arcs in MI 6.5, within an SQL 
statement or as a standalone expression. Whether the arcs cross, duplicate one another 
or do not intersect, the intersects operator always returns False. If this is true, 
must be an indication of the popularity of the arc object. Other obscure object types 
seem to work ok. My projection is lat/long and drwg units are km.

dim o1 as object
dim o2 as object

' 1. draw 2 intersecting arcs
' 2. select first arc
fetch first from selection
o1 = selection.obj

' 3. select second arc
fetch first from selection
o2 = selection.obj

' following always returns FALSE regardless of intersect geometry of 2 arcs
print o1 intersects o2

Phil.

___
SPATIAL PROJECTS 
61 Burradoo Rd
Burradoo NSW 2576
Australia 
Ph (61)02 48617977
  0418 647697
Fx  (61)02 48617977
Email : [EMAIL PROTECTED]
Web: www.acenet.com.au/~pwaight



Re: MI-L Where to find symbols as BMP's?

2004-03-24 Thread Phil Waight
I couldn't agree more that decent / well organised symbol sets (either bitmap or TTF 
style) seem to be in short supply. My main issue with the current set in MapInfo / 
MapX is that they are poorly presented / classified, not so much that they couldnt 
cover most of my or my customer's requirements. When I went searching for 
standards/symbol sets, I had the same result as you - not much seems to have been 
done. However, geologists seem to have their act together with good sets and 
standards. So here are my findings in no particular order. Some of the references 
below may have sufficient quality graphics that you could turn them into BMPs with 
some very tedious work.
  1.. I dont think I was able to find downloadable TTFs on the ESRI site, but this 
link http://moorstation.org/typoasis/designers/esri/index.htm has 8 Esri fonts.
  2.. Downloading and installing ArcPad (free) gives you sets of free fonts, but it 
was a while ago and cant comment on the quality.
  3.. USGS symbol standards for topo maps are presented here: 
http://www.mytopo.com/background_topo.cfm, but these are mainly areal fill patterns 
rather than point symbols - would be nice to have in MI one day though.
  4.. Exhaustive geology symbol standards/definitions here ... 
http://ncgmp.usgs.gov/fgdc_gds/mapsymb/mapsymbpdfs.html  These have great detail, but 
has someone created these region/line/point styles for MapInfo?
  5.. This is a good study reference on symbol types and application  
http://atlas.gc.ca/site/english/learning_resources/carto/symbol.html
  6.. This link is referred to in a number of places and so must have had something 
useful in it at some stage http://www.maps4u.com/ref/symbology/usgs  but no longer 
exists. Possibly the content exists elsewhere now??
  7.. Installing software such as CorelDraw gives you a wealth of fonts.
  8.. My last version of LayMan 
(http://www.acenet.com.au/~pwaight/layman_whatsnew.htm) addressed 2 shortcomings of 
standard symbol use in MapInfo, organisation (groups symbols by a classification  and 
allows sorting by font name or class) and speed of use (browsing and picking) whilst 
editing a map.
Phil.




- Original Message - 
From: Mickey Feldman [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, March 24, 2004 7:28 AM
Subject: MI-L Where to find symbols as BMP's?


 
 Hi list,
 
 I have literally thousands of bmp's for button glyphs, icons, etc, but very 
 few of them are appropriate symbols for map point data. I'm just looking for 
 ordinary stuff like schools, fire stations, hotels, etc. My googling for this 
 brought up that this same question that was asked a few months back, but 
 apparently the only response pointed to ESRI's TTF symbols. These are OK, but 
 limited and just black and white. I really want bmp's. 
 
 Surely there must be a collection of these out there somewhere?
 
 TIA
 
 -- 
 Mickey Feldman
 
 [EMAIL PROTECTED]
 
 
 -
 List hosting provided by Directions Magazine | www.directionsmag.com |
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 Message number: 11045