0% found this document useful (0 votes)
15 views20 pages

Map Book Generation

Uploaded by

IcauSyafrizan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views20 pages

Map Book Generation

Uploaded by

IcauSyafrizan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 20

Map Book Generation

The purpose of the Map Book Developers Sample is to allow for the creation and output of map books.
Map books are multi page documents based on a dataset and an index grid representing the pages. The
Index grid for a map book represents how the dataset set should be divided up for plotting at a more
workable scale. or instance! if a road atlas is being created! the index grid would represent the individual
pages or the atlas. or a "and #ecords office! the index grid would represent the distribution of $%&''!
$%$''! and $%(' scale maps for the count).
To use these tools! the following pieces are needed%
* dataset to output
*n index grid to divide up the dataset into pages +the grid ma) alread) exist as a feature class in
)our database! or the grid generation tool in the Map Book toolset can be used,
* single la)out to use with each page
-enerall) speaking! Map Books can contain multiple Map Series +set of pages based on a specific la)er,!
title pages! and other pages with miscellaneous content. The set of tools describe in this document allow
for the creation and persistence of a single Map Series within a Map Book. *dditional Map Series! title
pages! etc. would need to be created and stored in separate map documents. The ob.ects used in generating
the tools allow for storing these other components within a Map Book! so if )ou ambitious )ou ma) wish to
expand the user interface and add these capabilities. Throughout the remainder of this document we will
discuss how to use the tools to generate and use a Map Series within a Map Book.
/ere are a few terms that will be used in this document%
Index grid 0 refers to the feature class that will be used to divide )our data up into pages. This
feature class should contain pol)gon features with at least a string field representing the name to
be used for each page. *dditional fields ma) be added to represent the scale and data frame
rotation to be used for the page represented b) the feature. In other words! there is a one to one
correspondence between the features in the Index grid feature class and the pages in )our Map
Series.
1age 0 when )ou use these tools a 2page3 is generated for each feature in )our Index grid. These
pages become individual plots when )ou print )our Map Series! or individual files when )ou
export.
Tile 0 refers to the individual features of )our Index grid. More or less s)non)mous with a 1age.
Map Series 0 a collection of pages based on the same la)out. This is what the set of tools being
discussed in this document allow )ou to create.
Map Book 0 a collection of Map Series and other miscellaneous pages.
Installation
To install the toolset! double4click on the 5I6ST*"".bat file. This file will register two dlls
+DSMapBook1r..dll and DSMapBook7I1r..dll, and load the necessar) classes into the correct component
categories. See the 8b.ect Model section below for more information on the components in the dlls.
Removing the Installation
To uninstall the toolset! double4click on the 576I6ST*"".bat file. This file will unregister the two dlls
+DSMapBook1r..dll and DSMapBook7I1r..dll, and remove references to the classes in these dlls from the
component categories.
Generating an Index Grid
Before creating a Map Series! )ou first need an Index -rid to base )our pages on. If )ou alread) have a
grid for )our dataset! proceed to the next section +-enerating a Map Series,. The grids )ou use dont have
to be of an) particular si9e and shape! nor do the) need to be interconnected. The grid features .ust need to
be pol)gon shapes. The Index grid )ou use must contain a field with string values representing the name of
each page +tile,. If )ou do not have a predefined Index grid! the steps below can be followed to generate
one.
Begin b) starting *rcMap and turning on the Map Series toolbar. :lick on the :reate;7pdate Map -rids
tool to displa) the dialog.
Generating a Map Series
*long with an Index grid! a page la)out is necessar) to generate a Map Series. If )ou dont alread) have a
page la)out created! standard *rcMap tools can be used to generate one. #efer to the *rcMap help for the
steps involved in adding legends! north arrows! and other map surrounds to )our la)out.
8nce )ou have an Index grid and a la)out loaded into )our *rcMap session! )ou are read) to create a Map
Series. If the Map Book tools are probabl) registered! an additional tab called 2Map Series3 should be
available on the Table of :ontents. If the tab is not available! go to the Tools4<8ptions dialog and enable
the tab.
The wi9ard for creating a Map Series can be accessed b) either selecting the :reate Mapbook tool on the
Map Series toolbar! or b) right clicking on 2Map Book3 on the top of the Map Series tab and selecting
:reate a Series. Both options lead to the displa) of the wi9ard.
igure $ shows the first page of the wi9ard. 8n this page )ou are re=uired to specif) the data frame were
the content for the Map Series will come from. It is important to note here that while it is possible to have
multiple data frames in )our la)out! the tools for generating the pages in )our series will onl) update the
displa) for a single frame +not counting the Identifier frames that we will discuss later,. or this reason it is
recommended that onl) one data frame be used.
In addition to specif)ing the data frame! the first page of the wi9ard is also used to specif) the la)er
representing )our Index grid and the field from that la)er containing the name for each page +tile,. >our
Index grid needs to be in )our *rcMap session to be used for generating a Map Series! but it does not have
to be visible.
igure ? shows the second page of the wi9ard! which is used for determining which tiles +features, of )our
Index grid will have pages generated for them. The left side of the page allows )ou to specif) whether all
or a selected number of tiles will be considered! while the right side of the page is used to eliminate tiles
based on the discover) of features from designated feature classes on those tiles. or instance! if I am
creating a Map Series of parcels for m) count)! I would probabl) choose to exclude tiles that did not have
an) parcels on them. This can be accomplished b) clicking on the suppression option and choosing the
parcels la)er from the available list. @eep in mind that =uer)ing each tile for the availabilit) of features
from a particular feature classes can be a time consuming process +based on the amount of data in )our
database,! so )ou probabl) do not want to turn on more than one or two feature classes for suppression.
Ahen pages;tiles are created b) the application! the) are numbered beginning with $. The final option on
this page +2Begin numbering tiles;pages at%3, allows )ou to specif) the number to begin numbering pages
b).
igure B displa)s the final page for the wi9ard! which is for specif)ing the options to use with )our Map
Series. The selections on the third page of the wi9ard can be changed once the Map Series has been
created! while the choices on the first two pages can not.
The left side of the third page is for specif)ing how the map extent +scale, will be set for the individual
pages. The three options are as follows%
Cariable 0 with this option the extent will be set to the envelope of the tile feature plus an) margin
)ou specif). Aith this option the scale of each individual page in )our box will be different if )our
tiles are not of uniform si9e.
ixed 0 with this option the scale of each page will be what )ou specif) and there will be no
variation between pages.
Data Driven 0 This option should be used when )ou have specific scales that go with each page
+tile, in )our series. To use these values )ou need to have an attribute field on the Index grid
containing the scale +this field needs to be defined as a numeric field,. or instance! using our
"and #ecords example before where the count) is divided up into $%&''! $%$''! and $%(' scale
maps. In this case each tile in the Index grid would have an attribute value set e=ual to &''! $''!
or ('.
The right side of page three has some additional options )ou can set%
#otation 0 this is also an attribute driven option. If )ou want to appl) rotations to the data frame
on each individual page! then )ou need to have a numeric field on )our Index grid that contains
these values. *n example of when this option would be used is a during the mapping of a
highwa) or some other long features in which the tiles of )our Index grid were generate to allow
for output of this feature at a particular scale.
:lip 0 turn on this option if )ou want the data to be clipped to the shape of )our tile. *dditional
checkout can be used to displa) a gra) crosshatch over the area outside of the current tile as
opposed to not displa)ing it at all. DDD68TE% Ahen using the :lip option! )ou ma) need to
ad.ust the eature Aeight of the Default graphics la)er for labels to be displa)ed. This is onl) an
issue if )ou are using labeling for feature classes in the map. If )our labels are not displa)ing with
the :lip option turned on! )ou will need to go to the :onflict Detection #ules on the "abels tab for
the "a)er 8ptions and change the eature Aeight for the FDefault< la)er to F6one<.
"abeling *d.acent Tiles 0 there are multiple wa)s )ou can identif) the tiles that are ad.acent to the
tile represented b) the current page. 8ne wa) is through Identifier frames +which we will discuss
later,! and the other is through this option. The "abeling option will add text around the outside of
the data frame to indicate the tiles that are ad.acent. These text elements are updated for each
individual page.
*fter )ou have specified )our options on the third page of the wi9ard!
select the inish button and the Map Series will be generated. The
individual pages of )our series will be displa)ed on the Map Series tab
based on the attribute value from the field )ou specified on the first page
of the wi9ard. Double4click on a page +or right4click and select the Ciew
1age option, to see how that individual page looks.
The igure to the left shows the Table of :ontents after a Map Series has
been created.
The page la)out )ou have defined does not change as )ou switch between the different pages in )our series.
>ou can update the la)out at an) time! as this information is not currentl) stored with the series. /owever!
there are a couple of extra things )ou can add to )our la)out through this toolset that can add some
additional page specific information. The next section +*dding 1age Specific Elements, discusses these
items.
Adding Page Specific Elements
In general! switching between the pages in )ou Map Series doesnt do much more than update the extent of
the data displa)ing in the data frame +and change the labels for ad.acent tiles if )ou have activated this
option,. There are a few additional items )ou can add to )our la)out that will be updated on a page b) page
basis! though. These items are%
Date 0 will be updated to the current date each time a page is generated.
Title 0 will be updated to the name of the page when the page is generated.
1age 6umber 0 will be updated to the number of the page;tile.
Extra Item 0 will be updated based on the value in the specified field from the index la)er
Identifiers +"ocal and -lobal, 0 these show the position of the page being shown in relation to the
other pages;tiles. The purpose of the "ocal Identifier is to show those pages that are ad.acent to
the current page! while the -lobal Identifier shows all the pages;tiles with the current page
highlighted. Both of those options create an additional data frame so )ou can change the highlight
color! label properties! and so on.
To create a Date! Title! 1age 6umber! or Extra item! begin b) adding a Text Element to )our map at the
appropriate position! si9e! color! etc. Aith onl) this element selected! select either the Tag as Date! Tag as
Title! Tag as 1age 6umber! or Tag Aith Index "a)er ield choice from the context menu for the Map Series
+accessed b) right clicking on the Map Series entr) in the Table of :ontents,. Items tagged as dates will be
updated with the current dated after tagging. Items tagged as titles will have their string changed to 2Title
String3 to let )ou know the) have been tagged. The name of the page will be inserted the next time )ou
access one of the pages. Items tagged with a field from the index la)er will be updated to the attribute
value from the specified field for the current tile;page.
or the Identifiers! choose the *dd Identifier rame button on the Map Book toolbar. >ou will be presented
with a dialog that asks )ou whether )ou want to add a "ocal or -lobal Identifier. Make )our selection and
click on the 8@ button. *t this point the Identifier tool will be active! so )ou need to drag out a box on the
la)out to identif) the position for the Identifier rame. *fter )ou drag out a box the frame will be added to
)our la)out. Select the Identifier "a)er from the Table of :ontents on the "ocal Indicator or -lobal
Indicator frame +depending on which t)pe of Identifier )ou added, and change the selection s)mbol! label
characteristics! etc. as )ou see fit. >ou will need to select on one of )our pages to update the Identifier for
the first time.
Below is an example of a "ocal Identifier.
Printing and Exporting
1rinting and exporting can be done for a single page! a set of pages or the entire series. 1rint and Export
options are available b) right clicking on an) of the items for the Map Book in the Table of :ontents. The
context menu )ou choose from depends on the number of pages )ou want to export. The available options
are%
To output a single page! )ou would access the context menu for that page and select either 1rint
1age or Export 1age.
To output a series of pages! )ou would access the context menu on the Map Series )ou created
and select either 1rint Series or Export Series. The dialog that appears after selecting from the
Map Series context menu allows )ou to specificall) specif) the pages )ou want to output! or )ou
can choose to output the pages )ou have enabled b) some other method +more on the enabling of
pages later,.
To output all the 1ages in )our Series! )ou can either access the print and export dialogues from
the Map Series context menu and select 2*ll3! or access the context menu from the Map Book
and select 1rint Map Book or Export Map Book. The options on the Map Book context menu
onl) allow )ou to print all of the 1ages.
The 1rint dialog appears below%
Depending on the context menu
)ou used to displa) the dialog!
the available 1age range options
will var). :urrent page is the
onl) option when the dialog is
activated from the context menu
of an individual page. *ll and the
1ages% option are available when
the dialog is activated from the
Map Series context menu. *ll is
the onl) available option when
the Map Book context menu is
used. Ahen selecting the *ll and
1ages options! the 2Dont output
disabled pages3 checkbox can be
used to further limit the pages. If
a page is disabled +not available
for output,! then it will not be
printed or exported when this
checkbox is checked.
The Export dialog appears below%
The 1age range options on the Export dialog
operate in the same manner as those on the 1rint
dialog.
Ahen a page is exported or printed! the "ast 8utput value for the page is updated to the current date. To
view the "ast 8utput date for )our pages! select 1age 1roperties from the Map Series context menu. This
information is stored as a parameter of the page within )our document. *s a result! )ou should alwa)s
make sure to save )our Map Document after printing or exporting to insure )our dates are maintained.
These dates can be used in selecting pages to print or export as discussed in the next section.
Creating Featre Indexes
* recentl) added option to the Map Book code is the abilit) to create an index for the features in )our
database +i.e.! a street index,. This option is available b) selection the 2:reate Series Index G3 option
from the Map Series context menu. Ahen this option is selected the following dialog is displa)ed%
The dialog allows )ou to select a la)er in )our map! a
field +text fields onl), from that la)er! and an output
text file. Ahen )ou click on the 8@ button an
alphabetical listing of the attribute value from each
feature in the specified la)er will be written out to the
file along with the 1ages the feature falls on. Based on
the dialog to the left! a file will be written out
containing the 8A6E# names of each feature in the
1arcels la)er with the 1ages these features are on. If
)ou use a Street la)er with a Street6ame field! then )ou
will get an alphabetical listing of the streets and the map
sheets )ou can find those streets on.
The Index b)% option allows )ou to specif) whether the
1age label +the name of the page;tile, will be listed or
the number corresponding to the page +as shown on the
Map Book tab in the *rcMap Table of :ontents,. Aith the number option )ou can also add an additional
value in case )ou want the page numbering to begin at something other than $.
Ena!ling and "isa!ling Pages
1ages are enabled and disabled for output purposes onl). Disabling a page does not mean it is not available
for displa)! it .ust means that it can be excluded from output +when the 2Dont output disabled pages
checkbox is used on the 1rint and Export dialogues,. The purpose of this capabilit) is to give )ou another
method for specif)ing the pages to be output. The simplest wa) to enable or disable a page is to click on
the icon at the left of the page entr). This icon will be a printer if the page is enabled! or an 2H3 if the page
is disabled. :lick on the icon will toggle it between the two options. This same thing can be accomplished
b) either selecting Enable 1age or Disable 1age from the context menu for the page.
*nother method for enabling and disabling pages
for output is to use the Select;Enable 1ages dialog
which can be accessed from the Map Series context
menu. This dialog can be used to select pages for
output before executing the 1rint or Export dialog.
The dialog is as follows%
The Select all and 7nselect all options are used to
select;enable or unselect;disable all the pages. The
Select b) date option is used to select pages based
on their "ast 8utput parameter +)ou can see this
date for the pages in )our Map Series b) selecting
the 1age 1roperties option on the Map Series
context menu,. Specif)ing a date in the before% box
will select all those pages that have not been printed since the specified date. Specif)ing a date onl) in the
after% box will select all those pages that have been printed since the specified. 1laces a date in each box
will cause those pages printed between the two to be selected;enabled. If )ou are setting the Scale for )our
pages based on an attribute value! the Select with scale option will be enabled. This option will allow )ou
to select pages I! F! FI! <! or <I the specified scale.
Context Men #ptions
#ight clicking on an) item on the Map Book tab in the Table of :ontents will give )ou a context menu.
Depending on what )ou click on )ou will be present with a different set of choices. The context menu for a
Map Book looks like this%
*dd Map Series 0 8pens up the wi9ard for generating a new Map series.
1rint Map Book 0 8pens up the dialog for printing all of the pages in )our book.
Export Map Book 0 8pens up the dialog for exporting all of the pages in )our
book.
The context menu for a Map Series looks like this%
Select;Enable 1ages 0 8pens up the dialog for selecting;enabling pages
based on a =uer) of the "ast 8utput date or the Scale for the page +select and
unselect all also available,.
Tag as Date 0 tags the selected Text Element! so that it is updated with the
current date each time the page is activated or output.
Tag as Title 0 tags the selected Text Element! so that it is updated with the
name of the page;tile each time the page is activated or output.
Tag as 1age 6umber 0 tags the selected Text Element! so that it is updated
with the number of the page;tile each time the page is activated or output.
Tag with Index "a)er ield 0 tabs the selected Text Element with a field from
the index la)er. Element is updated with value from current tile;page.
:lear Tag for Selected 0 :lears an) tags that have been set on the selected
text elements.
Delete Series 0 deletes the series
Delete Disabled 1ages 0 removes the currentl) disabled pages from the series.
Disable Series 0 disables the entire series.
1rint Series 0 8pens up the dialog for print pages in the series.
Export Series 0 8pens up the dialog for exporting pages in the series.
:reate Series Index 0 8pens up a dialog for creating an index based on the features that fall on each tile
+i.e.! a street index,.
Series 1roperties 0 Brings up a dialog showing the properties of the series. 8nl) the options for the series
can be changed.
1age 1roperties 0 Brings up a dialog showing the 6ame! Scale! #otation and "ast 8utput values for the
pages in the series.
The context menu for a 1age looks like this%
Ciew 1age 0 activates +displa)s, the page.
Delete 1age 0 removes the page from the series.
Disable 1age 0 disables;enables the page. This option is used to limit the pages that
are output when )ou 1rint or Export from the Map Series context menu.
1rint 1age 0 allows printing of the individual page.
Export 1age 0 allows exporting of the individual page.
Creating an Index $Grid% &a'er
The -rid -enerator Ai9ard is a tool for creating Map -rid pol)gons that can be used with the other Map
Series tools. >ou can optionall) populate an existing feature class +personal geodatabase or shapefile,! or
create a new feature class from scratch. The options available when generating )our grid pol)gons are
explained more full) below.
8ne technical note about generating an index grid la)er is that the calculation that converts a Map Scale
+eg% $%$!''', and a 1aper Si9e +eg% JK3 b) $$3, into actual pol)gon grid features +eg% ?(' ft b) B'' ft,
re=uires certain information about the datas pro.ection. or 1ro.ected data +eg% 7TM$&6,! the
Meters1er7nit propert) is used to make this calculation. /owever! for non4pro.ected -eographic data +eg%
lat;long, we dont have this propert) +as the ratio of meters to decimal degrees varies depending where )ou
are on the globe,. To support grids in -eographic format! a 2flat3 calculation is made 4 where the current
data extent and map scale are used as a direct ratio for the created grids. This ratio can onl) be calculated
while in "a)out Ciew! so the -rid -enerator Ai9ard button will onl) be enabled for -eographic data when
switched to "a)out Ciew.
Figure 1
igure $ shows the Map Series toolbar. The -rid -enerator Ai9ard is the third tool.

Figure 2 Figure 3
The first step in the wi9ard is setting where the created grids will be stored. igure ? shows how the wi9ard
will start! with no options selected and all the current 1ol)gon "a)ers listed in the top combo box. 6ote
that the 6ext button is disabled.
igure B shows the completed options. In this case we are going to store the new grids into a la)er alread)
loaded in *rcMap. Aere also going to delete all features that are currentl) in that la)er and were onl)
going to create grids if the) contain one or more Main#oads features in them. 6ote that an) Definition
Luer) defined upon the selected la)ers will be adhered to! so )ou could make grids for specific areas +eg%
Tax Mones,! specific linear features +eg% Transmission "ines, or specific points +eg% Site 8ffices,.
>ou cannot continue to the next step until )ou specif) the output la)er. If )ou opt to ignore empt) grids!
)ou will need to specif) at least one overla) feature la)er as well.
Figure 4
igure & shows the second page of the wi9ard. /ere is where )ou specif) the fields in which )ou want to
store attributes about the generated grids. The onl) re=uired entr) is the ID field. This is a string field that
will store the uni=ue identifier for each grid pol)gon created. +>ou specif) the format of the Identifier later
on,. The wi9ard will list all the available string fields in the combo box.
There are also three optional output field settings. >ou can use none! one! two or all three of them!
depending on )our data modal and individual re=uirements. *ll three fields are numeric! and onl) these
t)pes of fields will be listed in the combo boxes. >ou can also not select the same field for different
attribute roles. The Map Scale field will store the scale each grid will be created for +set later on in the
wi9ard,. This is useful if )ou are planning on storing multiple scale grids in the same feature class. The
#ow and :olumn 6umber fields will store the row;col values for each grid! regardless of the Identifier
format used. This provides access to absolute grid positions should )ou ever need to change the Identifier
format programmaticall) at a later stage! or if )ou want to use the grids as navigation aids.
Note: if you are creating a new shapefile or feature class to store your grids, then this page will not appear.
The wizard will define and create all the fields for you.
Figure 5
The third step in the wi9ard is defining the scale at which the grids will be displa)ed when used in
con.unction with the other Map Series tools. In the above example we are creating $%?'!''' scale grids.
The scale must be greater than '.
* related re=uirement is the range within which to create the grids. B) default! the dialog will be populated
with the current map extent. >ou can use the provided buttons to set the bounding coordinates to the extent
of the destination feature class! the current extent! or the extent of all the la)ers in the Map. 6ote that if the
destination la)er is a shapefile! then it doesnt have a defined extent +as geodatabase feature classes do, and
therefore the button is not alwa)s available. >ou can also edit the values directl) within the text boxes. If a
value is entered into a text box that is outside the valid range of the destination feature class then the text
will be turned red and )ou cannot continue.
Figure
6ext! )ou need to specif) the shape for the grid pol)gons created. Ae calculate this shape based on the
Data rame that is going to displa) the final grids. B) default! this is set to the current Data rame! the
name of which is displa)ed on the dialog. >ou can optionall) define the Data rame si9e manuall). This is
done in "a)out units +usuall) Inches or :entimeters,. This is useful if )ou are creating the grids on a
machine that does not have the final "a)out defined on it 0 )ou can simpl) specif) the si9e of the output
map frame and the grids will be created accordingl). In figure N! above! we are going to accept the current
data frame! 2"a)ers3! as our grid shape. The actual calculation converts the "a)out units at the given scale
into map units for the grid pol)gons height and width.
Figure !
The final step is to set the Identifier format. Essentiall) the identifiers created are a concatenation of the
row and column numbers! with several formatting options. >ou can change the order the identifiers are
.oined together! where the starting grid is! the st)le of row;column Ids! and whether or not to separate them
using an underscore. *s the settings are changed! the example Identifier in the top right hand corner of the
dialog is updated. In igure O! above! we can see the example Identifier is set to P*5B.
The inish button will then create )our grids. >ou can cancel the map grid creation during processing! if
re=uired. The cancel process will allow )ou to% keep the grids created thus farQ rollback to where )ou were
before )ou startedQ or cancel the cancel and continue creating grids.
igure J! below! shows the grids produced based on the example settings specified above.
Figure "
Creating a Strip Map Grid &a'er
* Strip Map! in regards to this tool! is a connected series of maps that follow some sort of logical path
across data. The Strip Map -enerator Ai9ard is a tool for creating a connected path of Map -rid pol)gons
that can be used with the other Map Series tools. >ou can optionall) populate an existing feature class
+personal geodatabase or shapefile,! or create a new feature class from scratch. The options available when
generating )our strip map grid pol)gons are explained more full) below.

Figure 1 Figure 2
The first step in generating a Strip Map is to define the path to follow. The wa) this is done for the Strip
Map -enerator is via a selection set. igures $ and ? above show one method of selecting the path. That
is! via an attribute selection. 8ther methods! such as a network trace! manual selection! etc! are e=uall)
valid. The tool .ust re=uires a selected path when it is invoked. 6ote that forked and dis.oint paths are not
supported at this time. "ooped paths are onl) supported if a single! looped pol)line is selected.
Figre (
igure B shows the Map Series toolbar. The Strip Map -enerator Ai9ard is the fourth tool. 8nce )ou have
defined the selection for the Strip Map! open the Ai9ard via this button.
Strip Map 1ath

Figure 4 Figure 5 Figure
The first step in the wi9ard is setting where the created grids will be stored. igure & shows how the wi9ard
will start! with no options selected and all the current 1ol)gon "a)ers listed in the existing la)ers combo
box. 6ote that the 6ext button is disabled.
igure ( shows the completed options. In this case we are going to store the new grids into a la)er alread)
loaded in *rcMap. The name for the Strip Map Series is going to be P/ighwa) N$ and were going to
delete all features that are currentl) in that feature class. 6ote that b) opting not to delete existing grids in
the output feature class )ou can define man) Strip Maps in a single feature class and then reference them
b) name for plotting purposes.
igure N shows the temporar) graphics that are created on the map when the dialog is opened. It shows
which end of the path the Strip Map will begin from. In this case! the map series will begin from the south
and head north. If we wanted to create the Strip Map in the other direction we could check the Plip the
line option.
6ote that )ou cannot continue to the next step until )ou specif) the output la)er.
Figure !
igure O shows the second page of the wi9ard. /ere is where )ou specif) the fields in which )ou want to
store attributes about the generated strip map grids. The re=uired fields are% Strip Map 6ame! 6umber in
the Series! and Map *ngle. The Strip Map 6ame must be a string field that will store the name for each
grid pol)gon created. The 6umber in the Series and Map *ngle values must be stored in a numeric field!
with grid numbers starting from $ and angles being stored in degrees. The Map *ngle is important as it
interacts with the Map Book options used when generating hard cop) maps. The wi9ard will list all the
available fields +based on applicable field t)pe, in the combo box for each attribute.
There is also one optional output field. The Map Scale field will store the scale each grid will be created
for +set later on in the wi9ard, and is numeric. *gain! onl) the available numeric fields will be listed in the
combo box. >ou cannot select the same field for different attribute roles.
Note: if you are creating a new shapefile or feature class to store your grids, then this page will not appear.
The wizard will define and create all the fields for you.
Figure "
The third step in the wi9ard is defining the scale at which the grids will be displa)ed when used in
con.unction with the other Map Series tools. In the above example! igure J! we are creating $%(!''' scale
grids. The scale must be greater than '.
8ptionall)! we can avoid Scale altogether and set the grid si9e based on real world units. or example! )ou
ma) want grids that are &'' feet wide and ?(' feet high. In that case! select the *bsolute Si9e option and
enter the values in the text box. The current Map 7nits are used for an) values entered. The name of the
current Map 7nits is displa)ed in the label next to the Aidth text box. 6ote that as the -rid Si9e! Data
rame Si9e and Map Scale are mathematicall) dependant upon each other! )ou cannot set the scale and si9e
properties simultaneousl). The scale value will be calculated based on the data frame si9e set in the next
step.
Figure #
The final step is to specif) the shape for the grid pol)gons created. Ae calculate this shape based on the
Data rame that is going to displa) the final grids. B) default! this is set to the current Data rame! the
name of which is displa)ed on the dialog. >ou can optionall) define the Data rame si9e manuall). This is
done in "a)out units +usuall) Inches or :entimeters,. This is useful if )ou are creating the grids on a
machine that does not have the final "a)out defined on it 0 )ou can simpl) specif) the si9e of the output
map frame and the grids will be created accordingl). In figure R! above! we are going to accept the current
data frame! 2"a)ers3! as our grid shape. The actual calculation converts the "a)out units at the given scale
into map units for the grid pol)gons height and width.
6ote that if we have specified a specific grid si9e on the previous step +ie% *bsolute Si9e,! then the Scale
will be calculated instead.
Figure 1$
igure $' shows the results of our settings. Ae can see that the start of the Strip Map is in the south and
that it progresses northwards! as specified. Ae can also see that this tool supports complex connections!
obvious in the link between grids ? and B. The tool calculates the place on the previous grid where the path
exits the pol)gon and then uses that as the start point for the next grid. The rest of this particular Strip Map
is more standard! where the grids appear like a connected snake.
inal tip% Ahile this tool! in its current state! does not support buffered areas around each grid! this effect
can be achieved via options available in the plotting dialogs. or example! if )ou wanted a $%$!''' Strip
Map that included a $'S buffer! )ou can generate the base grids at $%R'R.'R$ and then add the $'S buffer
in the Map Book dialog. That is! R'R.'R$ D $.$ I $''' +to & decimal places,.
#!)ect Model
The Cisual Basic code for the Map Book is divided into two separate pro.ects. The first pro.ect contains a
set of ob.ects +along with their properties and methods, that are used in the second pro.ect to create the user
interface. The first pro.ect is called 2DSMapBook1r..vbp3 and it contains the DSMapBook! DSMapSeries!
and DSMap1age ob.ects along with the interfaces for each. The interfaces! properties! and methods for
these ob.ects are as follows%
"SMapBook*
%&'(ap)oo*:
*dd:ontent +:ontent as ob.ect, 0 allows additional content to be added to the book. or the
application portion of this implementation! onl) a single series is added to the Map Book.
/owever! the hooks are there for )ou to add additional content to the book.
:ontent:ount% "ong 0 returns a count of the content items in the book.
:ontentItem+Index as "ong,% 8b.ect 0 returns the content item +as an ob.ect, at the specified
index.
EnableBook% Booean 0 returns;sets whether the book is enabled for output or not.
#emove:ontent+Index as "ong, 0 removes the content at the specified index.
"SMapSeries*
%&'(ap'eries:
*dd1age +1age as IDSMap1age, 0 allows additional pages to be added to the series.
EnableSeries% Boolean 0 returns;sets whether the series is enabled for output or not.
1age +Index as "ong,% IDSMap1age 0 returns the page item at the specified index.
1age:ount% "ong 0 returns the number of pages in the series.
#emove1age +Index as "ong, 0 removes the page at the specified index.
%&''eries+ptions: the properties in this interface can ,e changed after a (ap 'eries
has ,een created. -hanges will ,e enforced the ne.t ti/e a page0tile is displayed.
:lipData% Boolean 0 returns;sets whether pages in the series will be clipped based on the geometr)
of the page;tile.
DateDrivenield% String 0 returns;sets the name of the field to be used when the scale for each
page is coming from an attribute value on the Index "a)er.
ExtentT)pe% "ong 0 returns;sets where the scale is coming from when a page is displa)ed or
output. ' specifies a best fit scale! $ specifies a constant scale! and ? specifies that the scale is
coming from an attribute value.
ixedScale% Double 0 returns;sets the scale to use for each page when a fixed scale is being used.
"abel6eighbors% Boolean 0 returns;sets whether ad.acent pages;tiles are labeled on the la)out.
"abelS)mbol% IS)mbol 0 returns;sets the s)mbol to be used in label the neighboring pages;tiles.
Margin% Double 0 returns;sets the margin to add when a best fit option is being used to set the
scale for each page;tile.
MarginT)pe% String 0 returns;sets how to appl) the value of the Margin propert). The two options
are percent +the Margin value should be the percent to add to the current scale, and map units
+the number of Map 7nits to add to the current scale as a Margin,.
#otationrame% Boolean 0 returns;sets whether the frame should be rotated for each page;tile
based on an attribute value on the Index "a)er.
#otationield% String 0 returns;sets the name of field on the Index "a)er to use when rotating the
pages;tiles.
%&''eries+ptions2: added with the new option to display crosshatch o1er areas
outside current tile 2as opposed to clip3.
:lipData% "ong 0 returns;sets whether pages in the series will be clipped based on the geometr) of
the page or have gra) cross hatch drawn on top of area outside current tile;page. Calues are '
for no clip at all! $ for clip! and ? for crosshatch.
%&''eries4rops: the properties in this interface are only used when a (ap 'eries is
initially created.
*dd"a)erToSuppress +"a)er6ame as string, 0 add a la)er to the list of la)ers to use when
determining the pages;tiles to suppress. 1ages;tiles are suppressed when the suppression option
is selected and no data from an) of the la)ers in the suppression list can be found on the page.
Daterame6ame% String 0 returns;sets the name of the data frame used in the Map Book.
Indexield6ame% String 0 returns;sets the name of the field containing the name of each page;tile.
Index"a)er6ame% String 0 returns;sets the name of Index "a)er to be used in generating the Map
Series.
#emove"a)erToSuppress +Index as long, 0 removes the la)er at the specified index from the
suppression list.
Start6umber% "ong 0 returns;sets the starting number for the numbering of the pages;tiles.
Suppress"a)er +Index as "ong,% String 0 returns the name of the suppression la)er at the specified
index.
Suppress"a)er:ount% "ong 0 returns the number of la)ers in the suppression list.
Suppress"a)ers% Boolean 0 returns;sets whether suppression is used in the creation of the Map
Series.
TileSelectionMethod% "ong 0 returns;sets how tiles are selected during the generation of the Map
Series +this is separate from suppression,. ' indicates all tiles;pages will be generated! $
indicates onl) the selected tiles;pages will be generated! and ? indicates onl) the tiles;pages in
the current extent should be generated.
"SMapPage*
%&'(ap4age:
*dd1ageItem +1ageItem as IElement, 0 *dds an additional element to the set of page specific
elements. 1age specific elements are not used in the current implementation.
Draw1age +pDoc as IMxDocument! pDSMapSeries as IDSMapSeries! b#efreshlag as Boolean, 0
draws the page based on the parameters that are sent in. The b#efreshlag variable is used to
indicate whether the displa) should be refreshed during the draw process. The displa) is not
refresh when the page is being printed or exported.
Enable1age% Boolean 4 returns;sets whether the page is enabled for output.
"ast8utputted% Date 0 returns;sets the date of the last time the page with printed or exported.
1ageItem +Index as "ong,% IElement 0 returns the element in the page collection at the specified
index. 1age specific elements are not used in the current implementation.
1ageItem:ount% "ong 0 returns the number of elements in the collection for the page. 1age
specific elements are not used in the current implementation.
1age6ame% String 0 returns;sets the name of the page.
1age6umber% "ong 0 returns;sets the number of the page.
1age#otation% Double 0 returns;sets the rotation value for the page.
1ageScale% Double 0 returns;sets the scale for the page.
1ageShape% I1ol)gon 0 returns;sets the pol)gon shape for the page. This shape is used in setting
the extent for the page and as the clip shape if that option is turned on for the series.
#emove1ageItem +Index as "ong, 0 removes the element from the page collection at the specified
index. 1age specific elements are not used in the current implementation.
The DSMapBook7I1r..vbp pro.ect contains the Cisual Basic code for the user interface. This set of code
makes use of the ob.ects discussed above. The pro.ect implements the Map Book as an extension to
*rcMap! with the Map Book itself available as a propert) of that extension. rom the Map Book )ou can
then get to the Map Series and all the pages within that series. This means that CB* code could be written
to update the properties of the series or the individual pages. *s an example! the following CB* code is
used to access the Map Series%
Dim pMapBookExt *s DSMapBookExt! pMapBook *s IDSMapBook! pMapSeries *s IDSMapSeries
Set pMapBookExt I m5p*pp.indExtensionB)6ame+TDevSample5MapBookT,
Set pMapBook I pMapBookExt.MapBook
Set pMapSeries I pMapBook.:ontentItem+',

You might also like