Re: Phriday Philosophy (was: MI and Manifold)
I for one really enjoy the open nature of MapInfo-L. My interests in MapInfo cover a wide range, and to have to try to focus that would be difficult. I also enjoy the email that is outside of my normal interest because occasionally there is something that strikes me as interesting. It keeps me informed about topics that I wouldn't otherwise keep up with but still impact what I do for a living. I would miss that if I had to pick and choose which MapInfo lists I subscribed to. I still find the easiest way to deal with this is the self-editting method. The delete key remains my favorite tool! Gary. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: Summary - MI Oracle and MapInfo - Map/nHand?
Hi, I just wanted to chime in on this Wireless conversation. While MapInfo's pre-packaged solutions are Java/Oracle based, that doesn't mean that wireless mapping can't be done with MapInfo products without Java and Oracle. All that's required is a server-side application that supports the WAP protocol which is very well documented -- check out Nokia's site at http://www.forum.nokia.com/main/1,6668,1_1,00.html (requires you to sign up, but it's free and includes a very cool wap-enabled phone simulator for testing). Another good resource is The Wireless FAQ at http://allnetdevices.com/faq/ As a test, I wrote an Active Server Pages application using MapXsite (significantly less expensive than MapXtreme!) to do a scaled-down dealer locator. It worked fine with the Nokia simulator. I haven't tested it with anything else, but as a proof of concept I think it was a success. The only real difference between what I wrote and a traditional MapXsite application is that instead of spitting out HTML, the application has to write WML (which is similar to HTML). Of course, MapInfo would prefer to sell larger (read more expensive) solutions in this arena because the players tend to have a lot of dough. To be honest, I like to make money, too. But if we can leverage existing, lower cost products, then I think we have the ability to make our money on the application development side and still provide a lower-cost alternative to the customer. I believe that the real challenge is not from a programming standpoint, but from a cartographic. How can we make useful, engaging maps that display on a monochrome screen within miniscule real estate? I'm not sure how big the PalmPilot screen is, but I think the Nokia phone is only 96 pixels wide by 65 pixels high! I'd love to hear some discussion on this topic, especially considering the fact that these devices are likely to get smaller and smaller. I think I heard somewhere that IBM has developed a prototype wristwatch with wireless capability. How are we going to display maps on that?!? Gary Schwartz Manager Application Development Mapping Analytics -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
SUM: MI International Geocoding and MapX
Thanks to all who responded to my query. It seems that the consensus is that international street-level geocoding remains next to impossible through any consistent and coordinated effort. Currently, the best work around seems to be geocoding to the place/settlement name. This offers it's own challenges (English vs. Native vs. every other possible spelling, etc.,) and doesn't provide the kind of accuracy that many applications might require. However, for those who would find this acceptable, Steven Feldman forward this information: Try GeoLocata from whereonearth.com It offers world wide geocoding to settlement point or postcode. Contact [EMAIL PROTECTED] There product seems pretty solid from a first glance and we have requested more info from them. I know of several other global gazeteers, but I don't know if they have any "geocoding" software wrapped around them, so if any of them are listening, I'd be interested in knowing what they offer. Thanks also to Ole Gregor who shared some of the difficulties that they have with geocoding in Denmark and Zoran Markovic who described some of the trouble with GeoLoc (the MapMarker equivalent for Australia and New Zealand). I've attached both of their messages below for those who are interested. If anyone else has any thoughts that they'd like to share, please let me know. Gary. Ole Gregor wrote: > Hi > > That's a tricky one. > > I'm living in a country with a long tradition of coordinatet adresses and we > > still has problem with geocoding in MI. Our adresses is different than the > US ones (e.g. mine is Gudenaparken 62 and as you can se there is a special > danish character and the number after the street name - a special case is > that I also could have used a aa instead og a and it would still have been a > > valid adress) and the MI abbrevations file is not convenient outside US. We > have done part of our geocoding in MS Access after a wash of both the > mapadresses and the client adresses. The situation is much more mixed in a > lot of other countries and in some there is no central accepted/avaliable > adresss databases. > > I whish you luck with your Sissifos (a person from Greek mythology with a > large continius work)work > > Ole Gregor > Dept. of environment, natureconservation, planning and highways, Viborg > County, Denmark > (45) 8727 1307 > Zoran Markovic wrote: > Gary > > Unfortunately, I do not think you can have a general solution. > As you said, each country has its own geocoding solution, > often incompatible with MapMarker. > > For example, Australia and New Zealand use GeoLoc software > with its own spatial streets database. I have not heard of > anybody successfully porting this database to MapMarker. > But, GeoLoc is a decent software with fuzzy matching etc. > The streets database is not 100%, but its OK (95% satisfactory). > > The problem is that GeoLoc is a batch processor, not a > command line type processor - I will be very hard > to interface it with something else. > > I presume you are trying to create an Internet based distance > measurer or locator (real time) for the whole world and I do not envy you. > > Good luck > Zoran > -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
MI International Geocoding and MapX
Hi all, We're about to get involved in a project that is giving me ulcers just thinking about it, and I was hoping some of you might have some experience or advice to share that might abate my acid reflux. We're working with a client who needs to do address-level geocoding on a world-wide basis. Right now they're interested in just a handful of countries, but that list is likely to grow. As far as I know, there is no single solution for international geocoding. MapInfo has a MapMarker version for just a few countries. Beyond that, there seems to be street data available at a price for many countries. What I'm wondering is if anyone knows of any International geocoders or can share their experiences with working with International street data for geocoding. What countries have good data? What countries have bad data? What are the pitfalls with working with other countries' address information (i.e., address formats, etc.,) in either MapInfo Professional or (better yet) MapX? My only real experience has been with the US version of MapMarker and performing geocoding with MapX and StreetPro EAL. We envision creating a single interface that will accept an address, determine what country the address is for, and based upon that, utilize either that country's version of MapMarker (or other available geocoder) or, where that is not available, use MapX and street data for that country to perform the geocode. I'm sure you can understand my stomach's response to this. Any insight would be greatly appreciated, and, of course, summarized back to the list. Thanks, Gary. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Polygon Attributes
Seb, Here's the syntax for your query: Select ObjectInfo(obj, 21) From MyTable (21 is the MapBasic constant OBJ_INFO_NPOLYGONS which returns the number of polygons in a region object( Hope this helps, Gary. Sebastian Hudson wrote: > Andy, > > Thanks for the reply. Hopefully this will clarify what I am after. > > When double clicking on a region object it brings up a list of attributes such as >area. One of these is the number of polygons that make up the object in question. > Is it possible to do a query in mapinfo on all the objects within a table that will >show how many polygons make up each object? > I have large number of such regions that need checking regularly and doing it >manually is time consuming and prone to error as some may be missed out. > > Thanks > > Seb > > For more information on ADAS, visit our website at > http://www.adas.co.uk. > > The information transmitted is intended only for the addressee and > may contain confidential and/or privileged material. > Any use of, or taking of any action in reliance upon, this information > by parties other than the intended recipient is prohibited. > If you receive this in error, please contact the sender and delete the > material from any computer. > Opinions and other information in this message that do not relate to > the official business of ADAS are neither given nor endorsed by it. > -- > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI subselect
Daniel, Give this a try: Select * From BigTable Where ID In ( Select ID From SecondTable ) Gary. Daniel Budmiger wrote: > hy all, > > i have hot a big table with different codes and a > second table with a certain number of reference-codes. > how can i select only the rows from the first big table > which have the same code like in the second reference- > table? > > it must be sort of a subselect... > > thanks for your advice. > > * > Daniel Budmiger > Seminarstr. 115 > 8057 Zürich > Tel 01 / 364 41 55 > -- > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
SUM: MI Overlapping Point Symbols - Cartographic Question
Thanks to all of you who responded to this questions. You've definitely given me some good ideas to try. The four responses I've received so far are listed below. Gary. *** Yannick Leduc offered this idea for circles sized on the number of points at the given location: Hi Gary, this solution will work if your overlapping points are exactly at the same coordinates. First, you need to add as columns the X and Y coordinates to your point table using CentroidX() and CentroidY() Then, perform a query on your table where you will group your data around X and Y coordinates. It should looks something like this: Select Columns: Xcoord, Ycoord, count(*) >From tables: your_point_table Where conditions: Group By: Xcoord, Ycoord Order By: into Table Named: Grouped_points Then, save the query's result into a new table (Save Copy As) and open it Then, create points from X and Y coordinates (Table>Create Points...) Then, create a graduated thematic on the count column. Finally, you should be able to see a circle where the radius is define by the number of occurence at the same location. I'm not fully operational with english. I hope you have what you need! Salutations! Yannick *** Jason Adam had this idea for creating an individual values theme based upon the categories that occured at the same location (I especially like this idea because it makes labelling at lot easier as well): Gary- I think ideally you would have one row for each location, and multiple columns that would be filled with the data that exists at that point. Then to make the thematic map you'd have one final column where you concatenate all the data together ie category1+category2+category3+ Then when you make an Individual thematic you could assign the points "category1" as one symbol, "category2" as one symbol, "category1category2" as another, "category1category2category3" as yet another, and so on. Just edit the Legend text to reflect what the codes mean. Good luck, Jason ¤»¥«¤»§«¤»¥«¤»§«¤»¥«¤» Jason Adam Computer Draftsperson Monopros Limited Toronto, ON [EMAIL PROTECTED] *** Julie Kanzler offered several possible solutions (I like the starburst idea): Gary: I have been in your situation many times because I map a lot of sampling data and monitoring sites. Shifting a sample site is equivalent to falsifying the data! In the past I have generally done one of a few things: 1) used star-like symbols, where the number of prongs refers to the number of samples the symbol represents. 2) used a thematic point map where symbol size represents the number of samples. 3) used a single symbol, but rotated the symbol in place. This is most useful when the rotations can refer to some element of the data. I assigned rotations to points based on the data collection date. The result is that samples collected during different sampling events overlay without obscuring any. This is easier to do in ArcView. 4) used a combination of filled and non-filled symbols. I hope these give you some ideas. If you get a chance, let me know what you end up doing ... maybe I can learn something! Julie Kanzler GIS Analyst/Programmer Wyle Laboratories Arlington, VA (703) 415-4550 ext. 20 *** Phil Atkinson suggested using continous theme shading which doesn't really work for my situation since we are interested in the exact point locations but may work for other situtations: Gary, We use density estimation to produce a continous density surface using mapbasic. I'll publish the code in 1-2mnths.. Phil -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Undocumented (revisited)
I can share with you some not very useful information about the "Hoover" functions from the years I spent working for Claritas. Claritas was building a product that became nicknamed Hoover (I suppose it was meant to be some sort of data vacuum! - anyways I definitely remember a very loud sucking sound ;->) that used MapInfo Professional for its mapping engine (for Claritas' sake I won't disclose the product's actual name). They struck a deal with MapInfo to include some special functionality for this product and the functions you found were written to support that. I honestly can't remember what they do (it's been at least 4 years now since I worked on that product) and even if I could I'm sure that information would be considered confidential. But I'm pretty sure that they're really not all that interesting. My gut feeling is that they were put in to simplify the way commands were passed between the two products. In those days we were still using DDE which was pretty slow, so I think they might have been added to reduce the number of DDE calls that had to be sent back and forth. Hope this sheds a little light on your mystery. Let me know if you do figure out exactly what they do. Gary. Anssi Joutsiniemi wrote: Functions: SetHooverInfo(strDummy,strDummy)GetHooverInfo(strDummy)HooverCommand(strDummy)
MI Overlapping Point Symbols - Cartographic Question
Hi all. I have a cartographic problem that I'd like to share with the list and see what kind of ideas you might have to share. We are creating a series of maps showing point locations. In many cases there are multiple points at the same location, and we would like to use some sort of symbology to demonstrate this. The points represent different types of things, and using the dispersal method isn't really appropriate for this situation. We've tried using pie wedges to try to show this, but that doesn't look very good. Anybody have any other good ideas? I'll happily summarize any responses back to the list. Thanks, Gary. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI: Distance & Ruler
Kumar, I believe that this already exists. If you use the ruler tool to open the ruler window and then switch to the polyline tool to draw your line (keeping the ruler window open) the distance covered should be displayed in the ruler window. Hope I haven't misunderstood what you were asking. Gary. Anish Kumar P wrote: > Hi List > > I would like to create a tool which is used for drawing polylines and > simultaneously display the distance covered(similar to ruler tool) while > drawing. It is basically integration of polyline & ruler into one. > > Any help would be appreciated. > Thanks in advance > > Kumar > > -- > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
MI MapMarker - Reverse Geocoding
I have hear rumor that it is possible to perform reverse geocoding (given a lat/long return the nearest street address) using the MapMarker Geocoder API with a little bit of programming. Is anyone aware of this process, and, if so, can anyone shed some light on how this might be done? Thanks, Gary. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI MapX OCX and Oracle 8i Lite?
Neil, I think you're definitely on to something with this. I think the key to making this work will be convincing Oracle to develop a Spatial Lite cartridge to work with 8i Lite and the MapInfo suite of tools. The developer community has been waiting a long to time to get the spatial data out of the TAB format and into something more useful, and the latest Oracle Spatial implentation seems to really fit the bill. As for developer environments, don't forget Java. Oracle has jumped head first into the deep end over Java and MapInfo is definitely following suit. I have heard rumblings about MapInfo marketing the MapJ Java component in much the same way as they market the MapX OCX. Whatever your personal feelings about Java might be, MapInfo and Oracle are going to be pushing developers in that direction. I wonder if MapX developers will soon be grumbling about MapInfo abandoning them with pointless upgrades while focusing all of their energy on this new fangled Java stuff! At any rate, I like to think that only good things can come from the MapInfo-Oracle partnership, but I also remember having similar feelings when I heard that MapInfo had partnered up with Microsoft for Excel Map. I guess like everything else all we can do is make sure MapInfo hears what we have to say and then just wait and see. So if you're listening MapInfo, get on the ball with this Oracle Lite and Spatial Lite idea! Gary. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI can mapxtreme display vector data
At present, the NT version of MapXtreme can't do the vector thing. But the Java version can... Gary. Rajeev saraf wrote: One quick query that has been bothering me for a while.If i use mapxtreme to develop apps for internet/intranet then it displays the output as a GIF image on your browser. is it possible for the browser to get vector data and work exactly in the fashion that we work with mapinfo? say we are using it on intranet and data security is not an issue.--rajeev saraf
Re: MI MapXtreme Java - Thematic Mapping
Mark, There doesn't appear to be any Individual Values thematic "out of the box", but it can be done in a round-about sort of way using the IDSelectionTheme interface. The basic approach is a two-step process: Step 1: Create a recordset using a Group By on the column you want to create the individual values theme on. Step 2: For each record in the recordset, create a recordset for all records in your table that have the same value of your column. Create a new IDSelectionTheme object for all of the features in this recordset. Here's some sample code that I've just been working on. It connects to an Oracle database to get the data (it's using point data): private void applyIndividualRenditions(Layer layer, String table, String column, String whereColumn, String whereValue) { try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn = DriverManager.getConnection( "jdbc:oracle:thin:@charon:1521:ORCL1","SYSTEM","manager"); Statement statement = conn.createStatement(); //get all of the individual values from the table ResultSet rs = statement.executeQuery( "select " + column + " from " + table + " where " + whereColumn + "='" + whereValue + "' " + " group by " + column); //loop through each individual value while(rs.next()) { //create the theme using the value from the recordset as the name IDSelectionTheme theme = new IDSelectionTheme(rs.getString(column)); PrimaryKey pkey; //get all features that have the current value for the column FeatureSet feats = layer.searchByAttribute(null, column, new Attribute(rs.getString(column)), null); Feature f = feats.getNextFeature(); //create a random color for the symbol Rendition rend = new Rendition(); int r, g, b; r = (int)(Math.random() * 255); g = (int)(Math.random() * 255); b = (int)(Math.random() * 255); Color c = new Color(r, g, b); rend.setValue(rend.SYMBOL_COLOR, c); //add each feature in the featureset to the theme while(f != null) { pkey = f.getPrimaryKey(); theme.add(pkey, rend); f = feats.getNextFeature(); } layer.getThemeList().add(theme); } rs.close(); } catch (Exception e) { e.printStackTrace(); } } "Crompton, Mark" wrote: > Hi All, > > I know that there are not many MapXtreme experts out there, but if anyone > can help I would appreciate it. So far I have worked through all the > examples, and can Thematically Map my own data. BUT... I can only Map BY > RANGE. Is it possible using MapXtreme Java V2 to map by individual values, > or set the ranges manually? The CreateRangedTheme method only appears to > allow 3 different variations (EQUAL_RANGE, EQUAL_NUM and STANDARD_DEV). > Reading the documentation (what little is provided) there appears a way to > use the BIN methods to change ranges, BUT HOW??? > > Any help would be appreciated, Thanks > Mark Crompton > -- > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Y2K and mapXtreme
We've recently upgraded a client because of this situation. The upgrade was easy and painless. The Y2K issue is limitted to the Haht Application Server, so if you are using ASP or some other application server, you shouldn't be affected. I believe that the problem is with one specific function that is used to convert two-digit date strings to four-digit date variables. The function assumes that 00 reprents 1900. I think that the upgrade solves this problem by converting anything below 30 to 2000 dates and anything above 30 to 1900 dates. If you don't use this function, then you shouldn't need to worry. It is a bit annoying that MapInfo didn't find this until so late in the year, but I guess the old saying still applies...Better late than never! Gary. Dick Hoskins wrote: > I got a letter in the mail today dated December 17th from MapInfo > stating that: > > "If you use the HAHTsite Application Server to perform date-related > functions within your MapXsite and/or MapXtreme applications, this > information may affect you. MapInfo has determined that the OEM > version > of the third party software, HAHTsite Applicaiton Server OEM version > 3.1, builds 101 and 103, which was previously believed to be > Y2K-compliant are indeed not Y2K-compliant without an upgrade. This > application server is shipped with MapXtreme NT and MapXsite. HAHT > has > provided an upgrade, which MapInfo has modified and tested for its OEM > > version" > > The letter then goes on to explain the situation in more > detail Comments, etc? Dick Hoskins > [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Quick VB/MB string formatting question
Tim, In VB add a reference to the Microsoft Scripting Runtime library (windows\system\scrrun.dll) to your project and then use the FileSystemObject from that library. There is a method called GetBaseName() that will do the trick. In MB use the PathToTableName$() function (it should work with regular file names, not just tables). Gary. Timothy Chinchen Cen-IT wrote: > Not necessarily an MI question but in VB and/or MB does anyone know how I > can remove the Path info and extension on a string e.g. > > From > C:\data\MyTable.Tab > to > MyTable > > Many Thanks > > Tim Chinchen (GIS Systems Developer) > I.T. Services Bournemouth Borough Council > Mailto:[EMAIL PROTECTED] > > ** > This email and any files transmitted with it are confidential and > 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 system manager. > > This footnote also confirms that this email message has been swept by > MIMEsweeper for the presence of computer viruses. > > www.bournemouth.gov.uk > ** > > -- > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
MI Non-overlapping Buffers
I just wanted to let the list know that my offer for sharing the MBX for creating non-overlapping buffers was open to anyone who was interested. I've had a few people respond who weren't sure if I had meant for the offer to be open to everyone. So, just for clarification, yes, anyone is welcome to try it out in exchange for constructive criticism. However, the source code is not available (at least not at this time), and I'd prefer not to post the MBX to the archives yet. I just want to get a feel for how much interest there is in the program, and be able to correspond directly with the people using it. So far, I've had more interest than I expected. I'm eager to hear how people are using it and if there's anything else it should do. So, if anyone else is interested in the program, please drop me a line. Gary. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Mouse Over Functionality in MapX
Suzanne, I believe that this will be supported natively in MapX V. 4.0, but in the meantime, I do know a workaround in V. 3.5 using Visual Basic. In the MouseMove event, convert the screen X & Y into map X & Y and then use them to perform a SearchAtPoint on the layer of interest. If the search returns any features, set the map's ToolTipText property (I don't think this is part of MapX's API but it is exposed by VB) to the KeyValue of the first feature. Hope this helps, Gary. [EMAIL PROTECTED] wrote: > Hello, > > I can't seem to find mouse-over functionality in MapX. Does anybody know > if it exists? > I want the names of countries etc to pop up when the mouse goes over them. > > Thanks, > Suzanne > > -- > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Non-overlapping buffers
Berk, I have a MapBasic utility that does exactly this. The program adds a menu item to your Tools menu that activates a wizard that steps you through the process of creating the buffers. You can run the buffers on an open table, the current selection, or define an SQL statement that will select the objects to create the buffers around. Since the program has never really been tested beyond my own personal use, we are offering it for free in exchange for constructive criticism. If you're interested in trying it out, please send me an email, and I'll send it to you. Gary Schwartz Mgr., Program Applications Mapping Analytics Rochester, NY -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Map Basic, VB, COM and more
Steve makes some very good points in his email, but I still think that there is a very strong case for direct programming support beyond MapBasic within MI Pro. Yes, you can utilize MI Pro from VB as it stands today, but the interface is limitted. The major limitation is that MI Pro is an out-of-process server, which, for those of you with less programming experience, means that MI Pro needs to be running (albeit in the background) as well as your own program. This means two executables which takes up more system resources than in necessary and requires inter-process communications for any sharing of data between them which is much slower than communication within a single process. Secondly, the automation server that MI Pro exposes is less than intuitive. Most functionality is exposed by passing MapBasic commands to MapInfo which in turn are parsed and then run just as MapBasic commands entered into the MapBasic Window. This, of course, means that we're limitted to the functionality exposed by MapBasic, which, as I said in my previous email, is less than adequate for more advanced functionality. While I think this was a wonderful way for MapInfo to get started in supporting more advanced programming, the process is less than elegant and not even close to efficient. As for Steve's comments that "all these current options and future moves require a material leap in programming talent", I agree whole-heartedly. I am not encouraging MapInfo to abandon support for MapBasic. I'm just suggesting that many of us have outgrown it's abilities and are craving something better so we can add power and functionality to the software and, hopefully, sell more of it. MapBasic is great for simple and repetitive tasks, and needs to be kept around for that. But I think that MapInfo shouldn't devote their efforts into making MapBasic something that it was never intended to be - a development environment. For that, those of us who want to do more with the software need something better, more robust, like VB Script. MapX is a great step in that direction, but anyone who's used MapX knows that it doesn't compare in the amount of functionality available in MI Pro. There are times when we need to wrap our own functionality around the entire set of functionality offered by MI Pro, and MapX just isn't going to cut it for that. If what Neil said is true and MapInfo is rearchitecting the product using COM components, then we're only one step away from this becoming reality. If the interfaces are there, MapInfo just needs to find a way to expose them to hacks like me. Gary. "Stephen L. Thompson" wrote: > After seeing the messages over the last two days about VB et al. I > think it's time to weigh in on the discussion. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI Object oriented programming for Map Basic
Since I've been one of those obnoxious people asking for VBA support, I'll thow in my 2 cents: My goal/desire/wishful thinking is for MapInfo Professional to become a development platform. What I'd like to be able to do is, given a customer's problem, design a simple and elegant solution using standard programming practices that solves that problem. At present, I don't feel that MI Pro with MapBasic supports this. The problems, as I see it, are: 1) MapBasic is a non-standard programming language. It's great for what it is, and similar enough to Visual Basic to make it easy to learn, but the differences, when you hit them, can get you into trouble. Don't ge me wrong, I like MapBasic. I think it revolutionized desktop mapping when it first came out. But now it's time for something better. 2) MapBasic doesn't offer enough control over the application environment. If I want to write an application for an end-user, I have to go through way too many hoops to turn things off that will get them into trouble. And forget creating custom windows and dialogs. Unless you're an expert with the Windows API calls (which I hope never to be), this is impossible. MapBasic's Dialog statement is great for simple user input dialogs, but doesn't cut it for anything more advanced or interactive. 3) Using external functionality is tough in MapBasic. If you've got the functionality in a DLL you can get at it. But most third-party tools that are being developed today are in ActiveX. There are a number of good reasons for this, but suffice it to say that ActiveX is the industry standard and we should embrace it. 4) Finally, adding functionality to the core components of MI Pro is an issue that MapBasic can't address. Let's say you've got a customer who loves MI Pro, but really needs to have a spell checker for their layout windows (why they want to do this is none of my business!). Anyway, there are great spell checking ActiveX component out there, but just try getting MapBasic to make it work in your Layout Window. I won't say it's impossible, but I don't think that many of us want to waste our time making it work. If MI Pro supported the concept of "plug-ins", though, this might be much easier to implement. Ok, I hate to be one of those annoying people who whines about problems without offering any solutions, so here's a few possible ways to address this (keeping in mind that I'm not the person who has to implement it so of course it sounds great to me!): Scenario #1: Keep MapBasic as it is but create a statement that allows you to run a VB Script, utilizing all of the power that normally goes allong with VB Script (including the use of ActiveX objects). This is a great first step, and would address a lot of the problems, but I don't think that it's a final solution. example: Sub MyMapBasicSub( ) 'MapBasic code ... Begin VBScript 'VB Script code ... End VBScript 'More MapBasic code ... End Sub Scenario #2: Support VB Scripts but allow for embedded MapBasic code (like the above example in reverse). This is better (from my standpoint) but you're going to hear a lot of complaints from people who have a lot of legacy MapBasic code lying around. Scenario #3: Support both MapBasic and VB Script. This keeps all of us users happy, but requires more work from MapInfo. Also, to make this work, you need to allow the MapBasic to communicate with the VB Script and vice versa. I don't know how you'd do this, but it would definitely help. The real key behind all of this, though, has to come from a new architecture for MI Pro (which Neil Havermale alluded to). To make all of this work, this new architecture needs to encapsulate all core functionality into individual components that can be called from VB Script and be inherited by our own custom classes. I want to be able to create my own Layout window that does everything that MapInfo's does, but also does more. Or, I want to take the Redistrictor and remove some functionality that's going to cause trouble for my end user. All of this is big, and I'm not asking for it overnight. But if nobody asks for it, we'll never see it. As for MapX, that's not the answer. MapX is great for what it is, but it's never going to replace MI Pro. It wasn't designed to do that. Therefore, we can't just say that "Oh, you're doing custom development so you should use MapX." I don't want to have to re-create everything that MI Pro already does just so I can use mapping functionality with ActiveX. If I need to deploy a fully functional mapping system, I want to use MI Pro. If only need limitted functionality, then MapX is my choice. MapInfo needs to support both of these options. That's my 2 cents. Sorry if its a bit much, but I welcome any and all responses. I think that this is an important coversation for us as users to have, and I think MapInfo needs to
Re: MI MapX questions
Ara, No, you do not have to install the entire SDK on the user's machine. In fact, doing so would be a violation of the End User License. The help file that ships with MapX has a section on Distributing MapX Applications (do a help search on "distributing"). This describes in detail the files that need to be installed on the user's machine and where the should be installed to. As for your second question, I'm not sure why that would be happening. Perhaps someone else on the list has a better idea. Good luck, Gary. G E O I N F O wrote: > Hello All..., I have some qustions regarding MapX Application > Programming Development. 1. We have tried developing a VB and MapX > based application.After it was compiled to be an .exe and made its > installer using "Package & Deployment Wizard" - theapplication > always asked for Mapx30.ocx. It just won't work until I copy the whole > SDK into the PC.Q:Do we always need to install and use MapX > SDK to run an application?If not - how? 2. We tried to > call a geotiff raster to be shown as a vector backdrop - It really > took a long time compare to theusual MI Pro.Q:What do I > have to to make it faster?After it was loaded - We failed > to show it in a small zoom(It doesn't appear in the screen) > Image quality also degraded(appears some lines on top of > image)Is it capable opening more than one raster file?(We > loaded two files and than the app. hang up).Our image file > size average is 35MB. We use MapX 3.5 and VB 6.0 in a PC with > PII-400MHz, 64MB Ram, 4 MB VRam, 2X 4.3GB HDD. Please do help us - > since this is our first experience developing a map based app. with > MapX and VB.Your shared experiences and ideas would be very > appreciated. Thank's in Advance. Ara BudidarmaPT. GEONUSA INFOTAMA > (GEOINFO) > Tel. 021-8200167; Fax. 021-82405373E-Mail [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI MB 'Run Command' possibilities
I guess I don't understand why you need to create the array variable with the Run Command syntax. Why not just create an empty array as you normally would in your MapBasic program and then use ReDim to size the array to the necessary number of fields: Dim MyArray() As String ...some code... ReDim MyArray(mysize) -Gary. Mapmail wrote: > This does quite limit my possibilities when working with arrays. > What is then the normal procedure, for reading arrays from textfiles and > storing in MapInfo tables ? > Do you really create a separately named variable for every data post that > you read ? > In my case I am reading up from 20 to 75 fields, with 10 to 24 rows, > needless to say this would be extremely heavy to handle with separate > variables. > And since my table is created dynamically (this was not hard in MapInfo) I > will also have a large problem when I want to store the variables I have > read. > > I will have a look at the possibilities for creating a Visual Basic Program > that I can send my variables to and later retrieve from for storage. Any > Input on this idea is welcome ! > > Thanks for the help > > J.I.Dali > > > -Original Message- > > From: Gary Schwartz [SMTP:[EMAIL PROTECTED]] > > Sent: 22. juli 1999 14:31 > > To: Mapmail > > Cc: '[EMAIL PROTECTED]' > > Subject: Re: MI MB 'Run Command' possibilities > > > > From my experience, the Run Command statement works just like the MapBasic > > Window, which means that you can't use functions or subroutines. However, > > you > > can use the Dim statement, but you can't Dim arrays. So a work around for > > arrays would be something like this: > > > > For i = 1 to NumElements > > Run Command "Dim ArrayElement" + Str$(i) > > Next > > 'this gives you variables: > > 'ArrayElement1, ArrayElement2, etc., > > > > I'm fairly certain that any variables that you 'Dim' using the Run Command > > statement end up in the MapInfo global space (as opposed to your MapBasic > > program's global space) which means that they are visible from other mbx's > > as > > well as the MapBasic Window (I used this handly little feature to write an > > mbx > > that creates a bunch of variables with the names and values of the > > constansts > > defined in the MapBasic.def so I could use them from the MapBasic window). > > However, this means that you are tying up global memory resources and once > > the > > variables exist, if you try to create them again (i.e., by running your > > mbx > > again) you will get an error. Therefore, you should end your program by > > using > > the 'UnDim' statement to get rid of any variables that you 'Dim'ed. So, > > for the > > above example, you would: > > > > For i = 1 to NumElements > > Run Command "UnDim ArrayElement" + Str$(i) > > Next > > > > > > Hope this helps, > > Gary. > > > > Mapmail wrote: > > > > > Hello everyone > > > > > > I have a question concerning MapBasic. > > > When using 'Run Command', is there a way to use the statements 'Call', > > 'Dim' > > > and 'ReDim' as the command ? > > > e.g. > > > Str1 = "Call " > > > Str2 = "Myfunction" > > > Run Command Str1+Str2 > > > > > > or e.g. > > > Str1 = "Dim " > > > Str2 = "Myarray(10) as string" > > > Run Command Str1+Str2 > > > > > > I have not succeded, but maybe I'm doing something wrong. > > > > > > Thank you in advance > > > > > > J.I.Dali > > > > > > -- > > > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > > > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI MB 'Run Command' possibilities
>From my experience, the Run Command statement works just like the MapBasic Window, which means that you can't use functions or subroutines. However, you can use the Dim statement, but you can't Dim arrays. So a work around for arrays would be something like this: For i = 1 to NumElements Run Command "Dim ArrayElement" + Str$(i) Next 'this gives you variables: 'ArrayElement1, ArrayElement2, etc., I'm fairly certain that any variables that you 'Dim' using the Run Command statement end up in the MapInfo global space (as opposed to your MapBasic program's global space) which means that they are visible from other mbx's as well as the MapBasic Window (I used this handly little feature to write an mbx that creates a bunch of variables with the names and values of the constansts defined in the MapBasic.def so I could use them from the MapBasic window). However, this means that you are tying up global memory resources and once the variables exist, if you try to create them again (i.e., by running your mbx again) you will get an error. Therefore, you should end your program by using the 'UnDim' statement to get rid of any variables that you 'Dim'ed. So, for the above example, you would: For i = 1 to NumElements Run Command "UnDim ArrayElement" + Str$(i) Next Hope this helps, Gary. Mapmail wrote: > Hello everyone > > I have a question concerning MapBasic. > When using 'Run Command', is there a way to use the statements 'Call', 'Dim' > and 'ReDim' as the command ? > e.g. > Str1 = "Call " > Str2 = "Myfunction" > Run Command Str1+Str2 > > or e.g. > Str1 = "Dim " > Str2 = "Myarray(10) as string" > Run Command Str1+Str2 > > I have not succeded, but maybe I'm doing something wrong. > > Thank you in advance > > J.I.Dali > > -- > To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put > "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED] -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
Re: MI MapBasic capabilities
> My goal is to build a GUI for mapinfo with limited functionality so > that our clients can make their own maps. > Q. I'm pretty sure that is one of mapbasic's primary functions > (correct me if I'm wrong)...however, can i do this without mapbasic > at all? Can I do it all in VB or C++??? A. Yes, you can do this completely in VB or C++ or any other programming language that supports OLE. However, it will help enormously to know a little bit about MapBasic as the way that the MapInfo OLE Automation Server works is by passing MapBasic commands to it. On the positive side, the Automation Server was designed to allow you to include only the functionality you want to see in your program, while MapBasic was designed to add functionality to the existing set of MapInfo functionality. > Q. If I can do it without mapbasic...are there any advantages to > using mapbasic or not using mapbasic (ie VB and Mapinfo)? A. I can think of a few off the top of my head. First, by using MapBasic, you are utilizing a single process as opposed to creating a separate executable with VB or C++ which will have its own process as well as the MapInfo OLE Automation Server process. This ties up more system resources and is slower due to cross-process communication. Additionally, it is somewhat more complicated to utilize the Automation Server than it is to write a MapBasic program. However, if you are hoping to create a sophisticated UI, you will have a tough time doing it in MapBasic. Its really a matter of weighing the pros & cons based upon what's important to you. A quick look through Chapter 13 (at least that's what it was in version 4) of the MapBasic User's Guide will show you the basics of what's involved in using the Automation Server. I hope this helps. If you have any other questions, feel free to let me know. Gary. PS. By the way, have you considered looking at MapX? It's much easier to use with VB and C++, includes much of the functionality of MapInfo, and can be a less expensive solution if you are deploying over many seats. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
MI Power Lines
Does anyone know of a source for power line locations (either national or regional)? Obviously public domain would be wonderful, but a commercial product would work, too. Thanks, Gary. -- To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put "unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]