Sunday, October 20, 2013

Golf Course Mapper .Com...10 Years in the Making

GolfCourseMapper.Com Live Demonstration!
Read more about why this was 10 years in the making below the demo.
*** Update: New course coming soon and many changes to the UI.  Preview below.***

Okay, you're right that didn't take 10 years to create.  In fact with my SharePoint Bing Mapper platform in only took a couple of days to put that prototype together.

So what did I mean about 10 years in the making?  Roughly 10 years ago I decided I was going to build an application for mapping golf courses (Golf Buddy was what I wanted to call it).  I bought a Dell Axiom and a Bluetooth GPS device and got to work investigating.

All I needed to get the application running was going to be:

  1. A way to map the course.  I think the little known fact that I have a pilots license was inspiring this (and other application ideas).  I was eager to fly over golf courses and use LIDAR (or whatever it was called) to get the accuracy down to the millimenter
  2. An application that could have a moving map interface that would sync with the bluetooth GPS device.
  3. People to buy handheld devices to run the application on.  Folks, the handhelds had no sexy back then, zero, zilch.  I was even a bit nervous to let people see me with my geek kit, friends snickered.  
  4. And of course it would have been helpful to have a unified platform to make distribution of the application a reasonable endeavor.
BOOM!  It didn't take me long to realize that as an independent developer I would dies a slow and painful death if I stumbled down that path.  In fact I only wrote a few applications for the Axiom before deciding to seek shelter in paying work.  My favorite application that I created for the Axiom used the touchscreen to interact with Microsoft Flight Simulator...fun but not too useful or marketable.

Fast forward 10 years...

What happened to the challenges?
  1. Bing Maps has mapped golf courses down to small details, accurate enough to be adequate for a golf course mapping application.
  2. HTML5 allows the use of a get location function that in some cases can be pretty accurate when couple with as device that has GPS.
  3. Handheld devices got sexy and widely accepted.
  4. The latest web standards and browsers allow delivery of a quality application through the web browser and across platforms.
  5. And on my side, the SharePoint Bing Mapper application I use to develop mapping solutions makes creating a mapping based application quick and completely pain free ;) (please pardon the slight exaggeration). 
So there you have it, another live demonstration to kick the tires and play around with.  Warning: it is a prototype and not yet mobile enabled but still you can have some fun with it.

Screenshots:








Sunday, June 9, 2013

Mapping a Business on Bing Maps - IT Asset Mapping

Mapping a Business on the SharePoint Bing Mapper

IT assets mapped on the SharePoint
 Bing Mapper.


In this post we will be looking at mapping business assets on Bing Maps using the SharePoint Bing Mapper. This blog post will be building on the previous post, Mapping a Business on Bing Maps - Employee Mapping.  I will cover a few basics about using the tool and of course include a live demo.

Hopefully as I go through some of these features it will help spark ideas about how the mapper can help with business location information.  So far we have mapped the physical structure (the campus and the buildings), assigned employees to cubicals,  offices and work areas.  In this post we will be adding IT equipment to our map.  One point I want to stress is that the mapper has flexible data capabilities.  We could be adding power outlet locations, vending equipment or any other data to the map without ever going back to a developer.  

For this post I have added desktop computers and phone sets to the 2nd floor of building 1.  The same as with showing a person on the map, you can hover over the item to view the name and click it to get the detailed description.  Take a look at the included images to see how filtered views can be presented (for example, you might want to view only desktop computers over 3 years old).  And yes, you could use the mapped items to assign work orders (that would be slightly past out of the box capabilities but would by a fairly easy extension).  


Live demo of a filtered view showing phone systems at their installed location:



I have created a fairly simple demo, the detail popup as well as the Phone Systems table can be modified to include any desired data.

Here are a few more screenshots illustrating the features presented:
All persons and assets are
showing in this view.









A filtered view of IT assets showing
desktop computers.



A filtered view of IT assets showing
phone systems.

 

Adding a phone system to a IT
asset tracking list on the
SharePoint Bing Mapper.

Friday, May 31, 2013

Mapping a Business on Bing Maps - Employee Mapping

Mapping a Business on the SharePoint Bing Mapper 


In this post I will be demonstrating how to map a business on Bing maps.  This post will focus on showing employees on a Bing Map using indoor mapping, thereby creating a directory of employees.  In upcoming posts I will show other views that will include creating directories of conference rooms (including scheduling), mapping IT equipment to locations, etc.. 

Indoor map of an office on Bing Maps showing employee's assigned locations.

Live Demonstration!

Navigation Tips:
  1. Use the breadcrumb to select building, switch floors, change sites and zoom to offices.
  2. Use the search box in the Employee Directory list control to filter employees by name or job title.  Just enter the first few letters to narrow results.
  3. In the Employee Directory list highlighting an employee will center them on the map.
  4. Hovering over an employee will show their name.
  5. Clicking an employee will give you a detailed information.




Pretty neat stuff.  Seams to me that any business with with more than a handful of employees could use a director system like this.  Indoor mapping used to manage employees locations!  Great additions to an intranet and a great tool for HR.

Here is a series of screen shots of how easy it is to move employees from one location to another (switch offices or desks):

Select employee with a right click, select move from action menu.

Move the cursor to the new location and double click.


Confirm that you intended to move the employee.

That's it, the employee is now in their new location, directory updated!






Thursday, April 25, 2013

Importing SharePoint List Items to a CSV File via Powershell


As a follow-up to my post titled "Exporting SharePoint List Items to a CSV File via Powershell" I am posting this script that I use for importing SharePoint ListItems via Powershell.  It works in conjunction with the exporting script.

This script borrows heavily from Brian Farnhill's  excellent post Populate a SharePoint list with items in a CSV file using PowerShell .

Key additions for the way I use it are the exclude columns array and the iterating of all lists in a web then attempting to load the list items for that list.  It accepts 2 parameters, the url of the web to import to and the path to the folder with the csv files containing the list data.

I'm sure there is room for improvement, but it does what I want.  


Param(
 [Parameter(Mandatory=$True)]
 [string]$webUrl,
 [Parameter(Mandatory=$True)]
 [string]$csvFolderPath
)
$web = Get-SPWeb $webUrl
write-host ("Web Title: " + $web.Title)
$arrExcludeCols = "Workflow Instance ID","Folder Child Count","Approver Comments","GUID","Modified","Modified By","Is Current Version","Edit Menu Table Start",
      "Edit","ScopeId","Level","Encoded Absolute URL","Select","Item Child Count","ProgId","Order","Workflow Version","Edit Menu Table End","Item Type",
      "Has Copy Destinations","owshiddenversion","File Name","Name","Server Relative URL","Created By","Unique Id","Sort Type","Effective Permissions Mask",
      "HTML File Type","URL Path","Copy Source","File Type","Attachments","Property Bag","ID","Type","Approval Status","Version","UI Version","Client Id",
      "Path","Created","Instance ID"
     
#foreach($list in $web.Lists)
for($i=0; $i -le $web.Lists.Count; $i++)
{
    $list = $web.Lists[$i]
    $csvPath = $csvFolderPath + '\' + $list.Title + '.csv'
    write-host ("Importing: " + $csvPath)
    try {
      $csvRow = $null
      Import-Csv $csvPath | ForEach-Object {
        $csvRow = $_
        $newItem = $list.Items.Add()
        Get-Member -InputObject $csvRow -MemberType NoteProperty | ForEach-Object {
        $property = $_.Name
        if ($arrExcludeCols -notcontains $property)
        {
        #write-host -foregroundcolor yellow ($property + ' : ' + $csvRow.$property)
        try {
            $newItem.set_Item($property, $csvRow.$property)
        }
        catch  [Exception]
        {
            write-host -foregroundcolor red ($_.Exception.Message)
           
        }
        }
        $newItem.Update()
        }
      }
    }
    catch  [Exception]
    {
        write-host -foregroundcolor red ($_.Exception.Message)
        #write-host -foregroundcolor red ("Could not import list items.")
    }
 

}

Monday, April 22, 2013

Exporting SharePoint List Items to a CSV File via Powershell

What?  A powershell script to export all lists from a web to csv files.

Why?  Doesn't SharePoint offer multiple way to move data?  Yes.  And they never quite seem to do what I want.  If I want to rebuild a development web after making schema changes to a list and I try to use any of the native SharePoint tools something always seems to go wrong.  If you want to share development data with other developers using the native tools, again good luck.  If you have multiple demonstrations and wish to install them on different farms and perhaps to different levels of the SharePoint product good luck.  Sometimes these things work, others times they just bomb.

Using a .csv file to achieve the same thing means you have just the data without any of the baggage that often comes with using SharePoint.

This script accepts 2 parameters, the web url and the output path for the csv files (you must manually create the output path if it does not exist).  It then get all lists and exports them to csv files where the names are the list title + .csv (yourListTitle.csv).

Here is the script:



Param(
 [Parameter(Mandatory=$True)]
 [string]$webUrl,
 [Parameter(Mandatory=$True)]
 [string]$outPath
)
$web = Get-SPWeb $webUrl
write-host ("Path: " + $outPath)
foreach($list in $web.Lists)
{
  $exportlist = $null
  $exportlist = @()
  $list.Items | foreach {
    $hash = $null
    $hash = @{}
    foreach($fld in $_.Fields ){
      Try {
        $hash.add($fld.Title, $_[$fld.Title])
      }
      Catch [System.Management.Automation.MethodInvocationException]
      {
        # Eating an error caused by duplicate column names.
      }
      Finally
      {
        #"End"
      }
    }
    write-host ("Exported: " + $_.Title)
    $obj = New-Object PSObject -Property $hash #@{
    $exportlist += $obj

  }
  $expath = $outPath + '\' + $list.Title + '.csv'
  $exportlist | Export-Csv -path $expath #$oPath

}

Thursday, April 11, 2013

Bing Indoor and Venue Maps on the PdocTech SharePoint Mapper Demo

Combining Bing Indoor and Venue Maps with the SharePoint Mapper
Available parking mapped on Bing
Venue map with SharePoint Mapper.

Frenemies - an enemy pretending to be your friend or someone who really is your friend but is also a rival.  I'd like to believe we are all in this together, out to make the best product, share it with the World and enjoy our success.

So as I develop the SharePoint Mapper I often find myself being surrounded by giants playing in the same arena.  Bing (Microsoft), Apple, Google and others are all involved in the indoor/venue mapping arena.  How will the PdocTech SharePoint Mapper fit in to this picture?


The concept is to offer enhancements to these products that allow users to control their data and the presentation.  Each of the big players is focused on issues like how to map the indoors, how to gain market share, how to control the use of the maps in a way that can be monetized.  The Mapper is focused on the individual and enterprise needs.  It allows an organization to take control of their mapping experience, control their data and to use it in the way that benefits the organization.  


So for today's demonstration I will be combining a Bing Venue map with the PdocTech SharePoint Mapper.  Using the Mapper over top of a venue map allows the individual organization to leverage Bing Maps to their fullest extent.  With the SharePoint Mapper an organization such as a mall can use the venue map for directory services for their campus and control both the content presented to the user and look and feel, allowing them to seamlessly integrate the map in to their own website.  


In this demonstration I am presenting the Centerra shopping area.  The venue map is loaded through the Bing services and the functionality over that venue map is provided though the SharePoint Mapper.  In addition to the store layouts provided by Bing I have extended the layout to include the parking areas.  Parking information can be updated by an administrator to let customers know where there is available parking.  




   


This is the a fairly simple demonstration, but the possibilities to extend the use of this technology are many and can get quite complex.  Custom map layers can be added over the entire site or just over an individual store or area.  Clicking on a store could be made to show store information, including custom advertisements that could be individually controlled by the store personnel.  Mall maintenance and security can also use this tool for assigning work order or to track activity on the mall.

Thanks for looking and as always please feel free to leave a comment.


P.S.  Bill Gates, Microsoft, Bing Maps... I'd like to be frenemies (or really just friends!). 




Monday, April 1, 2013

Creating a SharePoint Map Gallery

Map gallery coming soon! It will be hosted on www.pdoctech.com. In the meantime I am spending some time creating a few demonstrations and embedding them here on this blog... Grocery Store Indoor Mapper:
Hint: Click in aisle to see list of items in that aisle.  
 

SharePoint Mapper Indoor Mapping Demo

The SharePoint Mapper is both an Enterprise system and a cloud hosted mapping system.  The cloud hosted mapping system allows for the creation of complex, great looking maps that can be embedded in any website.  This feature basically eliminates the need to develop you own map hosting for your website.  Save money, save time...everyone is happy.

Whether you are looking to add a logo to a map or create a map application it is as simple as setting up an account, adding you content and embedding in your webpage.

I could blather on but instead I offer you this look at an embedded map: *  Map no longer embedded, click link for demo.

Adventure Works HQ Demo

Wednesday, March 27, 2013

Indoor Mapping - The Local Grocery Store

Today's Indoor Mapping challenge - The Local Grocery Store


While chatting with a friend about The SharePoint Mapper he said "You know what I hate, not being able to find stuff in the grocery store...you should make an app that does that."  


I said great idea, as a matter of fact I think I can map a grocery store (or multiple stores) with the SharePoint Mapper right out of the box.  So I made that my mapping challenge of the day.



Warning:  I am graphically challenged...

Step 1 was to create a custom map that resembled the local grocery.  For me this is the hardest and most time consuming part.  I spent about 2 hours trying to make something that people could interpret as a grocery store interior.

Step 2 was to cut my map in to tiles.

Step 3 was to map the areas within the stores and add some context (name and description).

Total time spent:  ~3.5 hours

Wallah...
  
Indoor map of the local grocery store on The SharePoint Mapper.
Remember the above warning, but you should also know that everything on the page can be styled with css and jquery.  In fact, the form in the image can be entirely replaced with injected html via capturing a javascript event.

Feel free to leave you idea for a mapping challenge in the comments section below. 

Tuesday, March 26, 2013

Indoor Mapping War Declared!


In today's top business news:
Apple Buys Indoor GPS Specialist in Map War

At least that is the top business new for the PdocTech SharePoint Mapper project.  Apple has realized the next phase for mapping will be indoor mapping.

Here at Code From The Porch, that is great to see one of the major player trying to address the next need of mapping.  If you have been following this blog, the you know it is all about indoor mapping.

So Apple has jumped in with both feet.  The SharePoint Mapper provides indoor mapping with the most flexible and extensible offering available utilizing Bing Maps.  Sounds like our competitor,WiFiSLAM found a big brother, but we're not worried.  On the Microsoft/Bing Maps/Enterprise indoor mapping solution our solution is ready for the competition to begin!    

Monday, March 18, 2013

Free Beer!!! Ok, not really...Free SharePoint Mapper Account!

The free trial offer has ended.  Thank you everyone.



So I can't actually give everyone free beer, sorry, but I can give you the next best thing:
A free trail account to use the Pdoc Tech SharePoint Mapper using Bing Maps!!!  I know you are excited now!

The Mapper is in Beta, somewhat ready to use and still ready for some more refinement.  So I want to give everyone a chance to play on the hosted version and see how easy it is to build great Bing Maps that are hosted in the SharePoint Mapper.

How to get your free Mapper trial:

  1. Either go to http://www.pdoctech.com/mapper and follow the links to subscribe or send me an email support@pdoctech.com.


Pretty simple.

Gratuitous image Pdoc Tech Bing Maps SharePoint Mapper.

Now remember, this is a free trial of a product in beta.  Feedback is encouraged, ask for help or guidance if you would like to try something or would like to know about extending the Mapper to accommodate custom functionality.

This offer is valid until it is no longer valid.



Saturday, January 19, 2013