A Practical Guide to SharePoint 2013

A Practical Guide to SharePoint 2013
A Practical Guide to SharePoint 2013 - Book by Saifullah Shafiq

Sunday, February 19, 2012

HTML5 Geolocation and SharePoint 2010

HTML5 Geolocation and SharePoint 2010





 


HTML5 Geolocation and SharePoint 2010

Let's see how we can take advantage of HTML5 Geolocation feature in SharePoint. Geolocation allows you to find the
location of your site visitors. There can be many uses of this feature. For example, you can use it to gather statistics for your site. You can then create a graph or chart widget and show countries that visited your site or blog the most. There are endless possibilities. You can also show cities. It can really come in handy if you run a business on the
net. This thing also works in mobile devices. Looking at the number of mobile applications that are sprouting everyday, this feature can really play a pivotal role in gathering geographic data of your visitors. It will directly
impact your sales and marketing campaigns. Plus point is that this feature has good support in every browser. Well if you are thinking about IE 7 and IE 8, forget it. You need IE 9 for this thing to work but that's for computers. For devices that use non-IE browsers, this isn't a problem. Almost all browsers support this feature. If you are afraid that this
thing will not work in SharePoint, let me tell you that it will work. All you need is IE9 browser. If you don't have IE 9, start using Chrome or Firefox. They work well with SharePoint 2010 and also support other standards
that are popular today. This includes HTML5 technology.

If you want to learn how to prepare SharePoint for HTML5 usage, read following article:
Jump to section "Using HTML5 in SharePoint 2010". You will find all the details in that section.
Once you are ready, start coding the HTML5 geolocation page. Using Geolocation is very easy. Check out the following code:


navigator.geolocation.getCurrentPosition(
function(position)
{
alert("Your
location is: " + position.coords.latitude + ", " +
position.coords.longitude);
}<BR>);






We get latitude and longitude coords to find the position of the user. OK, now we know how to find the location. Next goal is to show this location on the map. We will use Google Maps for this purpose. Again, it's not difficult to use Google Maps. If  you haven't used Google Maps before, you may want to check out the documentation online at http://code.google.com/apis/maps/documentation/javascript.  You have to include a Google Map link in your code before you can actually use this service. Add following line between the <head> ... </head> tags.


<head><br><title>HTML5Geolocation</title><br><scriptsrc="http://maps.google.com/maps/api/js?sensor=true"></script>
...<
BR>
</head>



Add a div tag to the page. This will be used to draw the map.


<body>
<div
id="mapCanvas"></div>



Use following style to design the map layout:

#mapCanvas
{
width: 650px;
height: 450px;
border: solid 1pxblue;

}





Now, you are ready to see everything in action. Call following function when the window loads:



window.onload = function() {
  results =
document.getElementById("results");
  var
myOptions = {
    zoom: 13,
   
mapTypeId: google.maps.MapTypeId.ROADMAP
  };

 







This code writes results in the "results" div. Variable myOptions contains options like zoom level and the map type. Map type that we are going to use is ROADMAP. After setting the options, create the map:



map = new
google.maps.Map(document.getElementById("mapCanvas"),
myOptions);




Following code will set user's location on the map:


function geolocationSuccess(position)
{

      var location =
new
google.maps.LatLng(position.coords.latitude,position.coords.longitude);
     
map.setCenter(location);

var infowindow = new
google.maps.InfoWindow();

     
infowindow.setContent("This is your location on the
map!");
     
infowindow.setPosition(location);
     
infowindow.open(map);

 results.innerHTML = "You are on the
map.";
}











Variable location contains the exact location. Then we show a box on the map with a message. We use InfoWindow() function to show the box. This box will appear at user's location. The following function will be called in case of failure:




function
geolocationFailure(positionError) {
  if (positionError.code
== 1) {
    results.innerHTML =

     "You have decided not to share your
location.";
  }
  else if (positionError.code == 2)
{
    results.innerHTML
=
     "The network is down or the
positioning service can't be reached.";
  }
  else
if (positionError.code == 3) {
   
results.innerHTML =
     "The attempt timed
out before it could get the location data.";
  }
 
else {
    results.innerHTML
=
     "Unknown error. Please try
later.";
  }


}




















In geolocationFailure() function we check different conditions to know the cause of failure and then show message
accordingly. That's it.

Click here to download complete code (html file in zip format)

Now you have the code. All you have to do is use it inside a SharePoint page. This has been demostrated in the following article so I am not going to repeat the steps again.

HTML5 Video and SharePoint 2010

Best way of running HTML5 code on a SharePoint page is to use a content editor web part and then access the URL of the HTML5 page inside the web part. You need to host the page in IIS first. After you have configured the content editor web part, open the SharePoint page in browser.

This is how the map will look like on your page:


Figure 1: Google Map with Geolocation

And this is how it will look on your mobile:



Figure 2: Permission to allow device to use your current location

After you click OK, you see the map.



Figure 3: Google Map on your device using Geolocation

If you want to see your location in the browser, open following link in your browser:

http://walisystemsinc.com/sites/html5/GeolocationMap.html

Stay tuned! Next article will show you how to use Geolocation to find Twitter users in your area.

You can read this article with good formatting on our site. Here is the link:

http://www.walisystemsinc.com/sharepoint/art/geoloc/HTML5_Geolocation_and_SharePoint_2010.htm