Improved PDF Maps on the HuntPlanner

We're happy to announce that we've added new improved PDF Maps to the Huntplanner!  The maps have been redesigned to be easier to read and use in the field. 


  • Hunt and National Forest boundaries clearly marked
  • Prominent physical features and towns noted
  • Improved streams symbols and shaded relief to assist with navigation.
  • Public and private land management are clearly defined
  • Customized rendering for improved readability and various scales
  • Designed for regular and colorblind hunters

You can view and download the new maps on details page for each hunt or directly from the map index.

Here's a preview of the new design.  Thanks for all the hard work Angie!

New Feature: View your observations in KML


new features

Logged-in Observations or Roadkill users, we've added a feature to share your data with you. On the right-hand side of any Observations pages, you'll see the familiar google earth icon "Google Earth" icon and a link to "View My Observations in Google Earth."


When you click a link, your browser will ask you to download a KML file (keyhole markup language, a file that Google Earth uses to show locations). Opening that file will plot your past observations within Google Earth#.

We hope this is a useful feature while we continue to enable further gis or mapping options for your observation data.


#Note: At this point-in-time, don't worry about saving the file. It is only a snapshot of your observations. It currently will not update within Google Earth with your latest observations, we plan to add this feature in the future. To view the most current snapshot of your observations, you will have to download the file each time.






Changing the Owner of Tables in SQL Server

You may configure SQL Server such that users who are not dbo may create tables, but you set yourself up for a world of pain.

Soon, you can no longer do simple table selects (because dbo is inferred) and instead must resort to prefacing every join with [user].[tablename].[fieldname].

The solution is a SQL Server system stored procedure sp_changeobjectowner:

EXEC sp_changeobjectowner 'user.table', 'dbo'

Note that this operation will clear all privileges.

Credit goes to my old co-worker Bruce, who shared this solution many six years ago in an email titled, "Lucky You". I had several hundred tables and views to re-title and privilege at the time.

RSS feeds and Microsoft Outlook, an introduction to RSS feeds

rss breakthrough

You're reading this blog entry if you are new to RSS feeds, but familiar with Microsoft Outlook.

RSS is a very powerful format to let our computer (this web server) talk to your computer quickly and easily. What RSS saves you from doing is returning to your favorite websites, like the IFWIS blog for instance, and checking for new content. The partnership of RSS and a client like Microsoft Outlook, among many others, makes browsing the web be a lot more like receiving an email. You'll save countless hours of web surfing and be able to stay up-to-date with the latest content for just the information you care about. "We feed so you can follow."

Here's an article that explains the process I'll describe below, but tailored specifically for IFWIS blogs and RSS feeds. I've taken the liberty to customize the steps to follow the main IFWIS RSS feed here.



To set up an RSS feed through Outlook, follow these steps:

1) Select "Tools" --> "Account Settings"

The Account Settings dialog box appears.

2) Click the RSS Feeds tab

The RSS sign-up page shows the list of feeds to which you're subscribed.

rss panel

3) Click "New"

A new dialog starts.

add rss

4) Enter the URL of the RSS feed you want.

The main RSS feed for the portal is:

Finding the RSS feed is better explained at the article at


The URL is typically pretty long. If you enter the address inaccurately, it doesn't work. Your best bet is to follow these steps:

1. Go to the site that hosts the feed you want.

2. Right-click the XML, RSS, or Feed button.

Different sites use different names for the same thing, but it's often an orange button.

3. Choose Copy Shortcut.

After you copy the shortcut, you can follow the preceding steps and paste the address into the New RSS Feed dialog box.


Read more:

The RSS Feed Options dialog box shows a variety of changes you can make to your subscription:

Rss details

• Feed Name: You can change the name Outlook displays. 

• Delivery Location: Some feeds generate huge amounts of information every day, so you may want to send that information to a special folder or even to a totally separate data file. If you're on a big corporate network that limits the amount of email messages you're allowed to store, you may want to send your RSS subscriptions to a separate Outlook data file to avoid running out of space.

• Downloads: Outlook automatically downloads only a brief summary of each item, which saves disk space but requires you to manually download full text of each item one by one. If you want Outlook to simply download the whole message, click the box labeled Download the Full Article as an .html Attachment to Each Item. Many blog entries also include attachments such as photos and sounds. Click the box labeled Automatically Download Enclosures for This Feed to do just that.

• Update Limit: Some RSS feed publishers don't let you update your information too frequently. If you try to update too often, they cancel your subscription. If there's a limit assigned to the feed you've chosen, this box is automatically checked.

6. Click OK.

7. Click Close.

Your new RSS feed is ready to bring you the latest on whatever it covers.



Observations and Roadkill have moved to secure traffic

As mentioned in the prior entry, Securing IFWIS Content: A migration to HTTPS (SSL) traffic, we have fully migrated Observations and Roadkill forms to use full https traffic. 

This should fix an internal login and authentication bug (IDFG users were not displayed as being logged in on the form after entering their credentials).

Additionally, this gives us room to move forward with handling more sensitive data as it is submitted.

Please let us know if you are having any problems with these applications.



Securing IFWIS Content: A migration to HTTPS (SSL) traffic

In an effort to protect your content and data, we're in process of migrating all web server traffic to https encryption. This is the same type of security that banks and agencies with sensitive data use to protect data transfer from your computer or mobile device to our web server. 

Using https helps protect data from being snooped by third parties, such as in public wifi hotspots. As a user, you won't need to make any changes. We'll redirect all traffic to these updated applications.  

SSL lockThis will be a continued migration and we'll experience a few hiccups along the way as we upgrade our applications. Occasionally you may see a warning message about "mixed content" or the secure icon that browsers show may switch to a broken lock or similar icon. These issues will disappear as we migrate. 


The first secure deployment is the IFWIS Portal. Soon to follow are the internal deployments of Observations and Roadkill. 


HTTPS definition from Wikipedia:

Hypertext Transfer Protocol Secure (HTTPS) is a combination of the Hypertext Transfer Protocol with the SSL/TLS protocol to provide encrypted communication and secure identification of a network web server. HTTPS connections are often used for payment transactions on the World Wide Web and for sensitive transactions in corporate information systems. [Read more at]

Font problems with your ArcMap exports?

When you need to export a PDF, EMF, EPS, AI or other vectorized graphic for a report or other format, you will inevitably run into the fonts problem. Especially when collaborating.

Here's a fix for you to consider.  

When exporting your map, you click "File --> Export Map"  The following dialog appears (this one for PDF export). The options available change depending on the export type, but the options to look for typically are always available:

This screen shot is from ArcMap 10, but the properties are similar in previous versions. Look for the following checkboxes, and mark them: 

  • Embed all document fonts
    • this will keep the funny fonts you might have loaded on your machine within the document
  • Convert Marker Symbols to Polygons 
    • this makes your graphic more portable between machines with different configurations


That's it. Your exports shouldn't give you and your collaborators a font headache if you use these steps.



Using the Google Maps API v.3 and the Roadkill API to add a Real-Time Map to your webpage or blog

NOTE: This is an update to an earlier demonstration post using the Google Maps API v.2 to add recent roadkill information to your webpage or blog.

STEP 1. Configure the URL to request

Visit and design your query using the editor.  For example, you may just be interested in one Highway section such as the first 22 miles of Highway 21.

Stripped of the empty parameters your url should now resemble:

Now, we can add some special parameters to grab the most recent observations.  Add to your url the following &start=-365&end=now to limit your results to the last year of observations.  The -365 is the number of days before the current date and time to include.  You may tailor this to your needs.  You can of course also use full dates, but this allows your query to be dynamic and useful in the future.

Possible parameters for date fields Observed Date (start, end) and Reported or iNsert Date (nstart, nend) include:

  • Valid dates in the format 1/10/2008
  • Now - current system datetime in Mountain Standard Time
  • Today - current day in Mountain Standard Time
  • Yesterday - previous day in Mountain Standard Time
  • Integer - positive or negative offset in days

Finally, add the kml extension, by copying the path from the kml icon or copying the following:


STEP 2: Add the Code

<!DOCTYPE html>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>IFWIS Roadkill API Google Maps JavaScript API v3 Example</title>
<script type="text/javascript" src=""></script>
<script type="text/javascript">
function initializeMap() {
  var mapCenter = new google.maps.LatLng(43.58, -116.06);
  var myOptions = {
    zoom: 12,
    center: mapCenter,
    mapTypeId: google.maps.MapTypeId.TERRAIN
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  var ctaLayer = new google.maps.KmlLayer('', {preserveViewport: true});
<body onload="initializeMap()">
  <div id="map_canvas">Map Loading...</div>


STEP 3: Enjoy

Here's a Live Example


What you see here is a live example of the same code from Step 2 above except instead of using the onload event of the html body, the scripts are placed immediately following the div element inside the html body.  Using this method you may place live maps on blogs, forums and other websites.

Explore the Google Maps Javascript v3 API and IFWIS Core API for more mashup ideas!

Using the Google Visualization API, Basic Pie Image Charts

As we move away from server-side generation of graphics, many people have been inquiring as to how to use Google Charts, Graphs and Maps in their applications.  In this series I'll start with the simplest integration and slowly add complexity to see what is possible.

There is lots of great documentation on Google's site and in various blogs, so please don't use this as your sole reference, only as a starting point to get an idea of what is possible.

Starting Basic

Let's say you have a simple dataset like the following and you just want to add a pie chart your users can download and use in their presentations.

Species Count
Bridgelip Sucker 1
Brook Trout X Bull Trout 23
Bull Trout 2
Chinook Salmon 365
Mountain Whitefish 15
Sculpin (Var. Species) 0
Steelhead (Snake River Basin) 118
Westslope Cutthroat Trout 3

While there are lots of fancy tools available in the Google Charts API, but making a pie chart with a small dataset like this can be as simple a calling their API and getting an image returned inside an <img> tag.

Let's look at the basic image URI structure from the Chart API Documentation:{width}x{height}&cht={charttype}&chd=t:{comma-delimited values}&chdl={pipe-delimited legend}

Adding our data we get:,23,2,

If you're a Windows Developer, at this point you may be wondering how you get your data to display with all these funky pluses and %29 characters.  The answer for .Net is server.urlencode(string).

To build the string above I'd loop through the data once and create two strings, one pipe-delimited, one comma-delimited.  Outside the loop I'd concatenate them all into one string and finally urlencode:

string labels = "";
string vals = "";
foreach (specieslistitem a in specieslist)
    labels += a.Species +  "|";
    vals += a.Count + ",";
string uri = "" + server.urlencode(vals.substring(0,vals.length-1)) + "&chdl=" + server.urlencode(labels.substring(0,labels.length-1));

We can then create an image tag that looks like this to display the chart:

<img src=";cht=p&
River+Basin%29|Westslope+Cutthroat+Trout"  alt="Pie Chart"/>

Pie Chart


That was pretty painless.  Let's see what we can do to make that better.


Add Data Labels

We can change that by changing the legend to labels by modifying the "chdl" parameter to "chl":

<img src=";cht=p&
River+Basin%29|Westslope+Cutthroat+Trout"  alt="Pie Chart"/>

Pie Chart


Some Final Tweaks

Now let's add a few fixes to improve legibility.

  • Add a color gradient using the Chart Color parameter (chco): chco=006633,FFFF33.
  • Insert a Chart Title Top parameter (chtt): chtt=Observed+Species+on+Secesh+River
  • Change the Chart Type (cht) to a 3D Pie: cht=p3
  • Modify the Chart Size (chs) to better accomodate the long labels: chs=500x150

Pie Chart

That's better, and a way more Fish and Gamey color scheme.  It could certainly use work, but it's good enough to get the general idea. 


In the Next Episode

In the next posts I'll explore a few more chart types and then move beyond building your charts in the URL to creating and using JSON data sources to build charts, add some interactive features to allow users to modify features of the chart and finally illustrate how to expose your JSON data sources as APIs for our collaborators and the public to use and explore.

What would make the Huntplanner better?

The Huntplanner is now eight years old and overdue for an overhaul. Over the next month the IFWIS Team will be rebuilding the site from the ground up and we'd like your input.

How could it be better? What doesn't work? What features would you like to see in the next release? Let us know!