spacer1
spacer2 1_1 1_2
2_1
 Subscribe
 The MP2K Update!
 
 
 
 Magazine
Front Cover
What's New
Articles
News
Sample Data
Gallery
Advertise
About
 Features
MapPoint 2011
Press Releases
MapPoint Forums
Companies
Link to MP2Kmag
Wish List
MapPoint Trial
Authors
 Earlier Content
Past News Items
Past What's New Announcements
 Sponsors
 Order

MapPoint 2011

Programming MapPoint in .NET

MapPoint Book

  Spatial Community
SVG Tutorials
MapPoint

Map Visitors

  ARTICLES  


Automating MapPoint with Perl

This article shows how to access the MapPoint API from Perl using the Win32::OLE module. Topics include basic Perl syntax, how to call MapPoint methods, and how to set MapPoint API properties.

I've been a fan of using Perl for manipulating text files for some years having previously used AWK. Both are free, but the main advantage of using Perl is the enormous variety of modules available ranging from HTML and XML parsers, image manipulation libraries, communications and networking, mathematics libraries and so on.

One the the modules is a library for calling programs via Windows OLE. Windows applications including Microsoft Office and MapPoint can be accessed programmatically and controlled from Perl. Perl Camel

ActiveState provides Perl for Windows in an MSI package which is freely downloadable. After it is installed, all that is required to begin executing Perl scripts is a text file which the extension .pl containing the code. There is no "project" file or compiling that needs to occur, Perl scripts are interpreted and executed on the fly making for a very easy learning curve.

The script below defines an array with the U.S. State names, instantiates MapPoint, and loops through the array saving a map for each state. Regular readers will recogize this as being very similar to the Automating MapPoint with the .NET SDK article published last year which basically accomplishes the same thing with the free VB .NET compiler found in the .NET SDK.

Both approaches allow you to program MapPoint for free, but in comparison automating MapPoint with Perl is much easier, not least because some de-bugging output is returned, aiding greatly in tracking down syntax errors.

Here is the script, you simply need to put this code in a text file and rename it with a .pl extension and just that simply you are able to automate MapPoint without needing an expensive development tool.

The first few lines tell the Perl interpreter to include the Win32::OLE module required for communicating with MapPoint. The next section defines the array of U.S. states. If you have the European version of MapPoint, replacing this with County or Major City names should work fine.

The next section instantiates MapPoint and opens a new map. In Perl, Methods are called using the -> characters. In the for loop that follows, FindPlaceResults is used to bring up each state in the array, "GoTo" the states and then save an html file. Note the last lines, properties are set using the curly brackets {}.

featured resources
- Sound Business Practices - essentials already written and ready to use.
- Saving a marriage is all about time and effort.

That's it! The files that are produced include an html file and directory for each state and the image file itself is simply called image_map.gif. Perl is great and file and directory manipulation, it would be trivial to get 51 gif files with the name of the state such as North_Dakota.gif. Other Perl modules would give you ability to manipulate or re-size the image and ftp it to a location or otherwise send it somewhere, create a PDF document with the map, and more. The applications are endless, I would encourage any developer to peruse the available Perl modules and scripts on CPAN to add to your arsenal of programming tools.

Discuss this story in the forum.

Author: Eric Frost
Email: website(AT)mp2kmag.com
URL: http://www.mp2kmag.com
Eric is Editor and Publisher of MP2K Magazine and is a part-time student in University of Chicago's evening MBA program. Eric recently finished the MP2Kmag Guide What's New in MapPoint 2004.



Google
 
MP2Kmag Internet


 Recent Discussion
-bingmaps: RT @ChrisPendleton: In case you missed my #location2012 talk, @OrdnanceSurvey has posted a recording: http://t.co/p5dcMTpN
-Upcoming WhereCamp Berlin 2012
-MapPoint for World Maps?
-Beginner stuck-what am I doing wrong?
-Mappoint 2011 Europe -> tooltip and update possibilities
-bingmaps: FREE BING MAPS EVENTS IN GERMANY: München https://t.co/pFJZxDdE Köln https://t.co/zerD99GK #bingmaps
-bingmaps: FREE EVENT: @BingMaps and @Beyond present a vision of the London 2012 Games: The Most Connected Games Ever. https://t.co/yEJ493OR
-Need Several Radius imported into a map
-Automatic generation of Drive Time zones around PushPins
-C# Code To Load Older COM Version
-Successful MapPoint Web Service (MWS) to Bing Maps Conversion
-bingmaps: @Sonray Please direct your question to our technical forum which is monitored by our developers: http://t.co/dEfOwFBC
-bingmaps: New Bird’s Eye Imagery & Streetside Coverage on Bing Maps! http://t.co/iJPu0McQ
-I have an excel spreadsheet that has number of houses on roads, can I link this to mappoint?
-Microsoft MapPoint 2011 Construction Data Update May 4th, 2012
-Mappoint 2011 and the built in database
-Using Excel and mappoint
-Extracting ZipCode With Lat/Long
-DataLink Problem!
-bingmaps: Integrating Bing Maps With WPF:http://t.co/HzdriaMs
-Mapping Bears
-Route Segments do not add up to complete route
-plotting pie charts by sales numbers
-Importing Live Data into Mapoint
-number of houses on a road?
 Resources
Browse GIS books and periodicals
Find a MapPoint Partner or Consultant
Real Estate Columbia For Sale By Owner
Search for Topaz Jewelry Bargains


Want Your Site To Appear Here?

   © 1999-2012 MP2K. Questions and comments to: website@mp2kmag.com
  Microsoft and MapPoint 2002/2004/2006/2009/2010/2011 are either trademarks or registered trademarks of Microsoft.