Google’s keyword ranking formula tips

By Alan S. at August 31, 2010 06:15
Filed Under: Marketing, Training, Web / Software Development

“What formula does Google use to determine where your website gets listed?” Wow, if we knew the answer to that we’d be rich. The problem with that question is that there is no definitive answer. There is no one formula that can be exploited to ensure your Google ranking is always number one!

 

With that said, there are some simple, basic strategies that need to be adhered to when putting your website up for public view. These all factor into the Google (and Yahoo, MSN, Bing, Ask.com, etc.) formulas, but how each is weighted varies and in some cases changes daily to ensure the content remains fresh and unexploited.

 

So, here’s our list of some basic determining factors for SEO ranking:

 

checkmark_red Tracking and statistics: First and foremost, make sure you have proper tracking on your website, such as Google analytics. These tools are invaluable when tracking the performance of your pages and your website in general. If you don’t have it, get it. Yahoo and Bing have similar setups, but Google Analytics is still the best.

checkmark_red Age of Domain: Age of URL is very important. Sadly, there is no way to speed up this factor. If you are a new website with a new domain name, it’s going to take time to get this factor to go up. The reason this is important is that domain longevity helps build trust. If your website has been online for several years, chances are you have an established business.

checkmark_red  Domain Hosting: Where is your site hosted? In this instance, outsourcing is a bad idea! The country in which your site is hosted plays a big role in how it gets scored. Always use a reputable hosting company. If you are a US based business, host in the US, if you are a UK based site, host it in the UK. When it comes to hosting, don’t go cheap. Also, make darn sure you have a dedicated (non rolling) IP. Some hosting sites that use clouds or virtual dedicated can change IP’s. This is a sign of website instability, so always make sure your hosted server is dedicated and demand a static IP for your server only. Never use the cheapest hosting. Let me be blunt… if you can’t afford decent hosting, then don’t expect to yield good SEO results.

checkmark_red  Your Neighbors: If you have a virtual server or shared server, which even the big name hosting sites like Start Logic and Go Daddy use, chances are your site shares the same IP as dozens (possibly hundreds) of other websites. Make sure that your neighbors on your server are not porn or classified as spam.

checkmark_red Content: Content isn’t just an important ranking factor, it is THE most important (IMHO). Make sure you have your keyword phrases on all your important pages, then make sure it is spread out evenly throughout the page (the beginning, several times in the middle, and at the end). And don’t just write mindless words for the sake of filling a page. The content must be relevant! I’m not saying that search engine algorithms are able to detect BS, but your readers are! The goal of SEO is to get people to visit your site or link. Once they do, you want them to come back. If they visit your site and see it contains a bunch of junk, they’re not coming back. And guess what the major search engines also consider in their rankings? You got it, time on page and returning visitors. Always write your content for humans and NEVER write content for the sole purpose of SEO formula injection.

checkmark_red  URL Structure: Make sure your URL structures are very clean. There should not be any random strings of characters at the end of your URL’s. This is a trap that a lot of resellers fall into. They register the short version of their long URL thinking that bit.ly/Djs8ds is simpler to read and also hides the fact the user is being redirected to a reseller link… And that is correct. But, search engine algorithms don’t understand gibberish at the end of a URL. The tradeoff is that you can fool users into clicking on an obvious reseller link, but you will not score at all in regards to SEO.

checkmark_red Keywords: This is an SEO lesson in and of itself, but some basic information includes making sure your website is optimized using your keyword phrases. This means placing that text in any alt tags for images, meta page information, and existing content (laid out according to our Content rule above).

checkmark_red Bounce Rate: Again, this is something that is hard for you to control, but sticking to some basic guidelines ensures that your bounce rate is kept to a minimum. Make frequent changes to get visitors engaged with your website. Simple things like video tutorials, newsletter subscriptions, and comments will help improve your bounce rate over time.

checkmark_red Internal Link Structure: Make sure your inner pages are linked correctly. Visitors should not have to hunt, peck, and wonder about how to navigate your site. Make menus and links clear, concise, and visible. Every so often, make sure there are no broken links in your navigation chain! Broken links are a punishment in SEO rankings. Make sure the code of your website is verified and keep flash and JavaScript to a minimum, if you can. Clean and easy to read is the way to go.

checkmark_red Trust: How do you gain trust? Well, if you don’t have the benefit of a well aged domain name, you need to provide people (and search engines) with a reason to think your legitimate and here to stay. If you have a physical business address, list it. Search engines like to see that you are not just a web based business, but also a physical business. Phone numbers are important, too. Even if you Skype or GoToMeeting most of your customer interaction, an actual phone number helps users and search engines feel that this is your only business and that all resources are exercised to ensure your availability. At a bare minimum, at least provide a customer service or support email address. The goal is to make it easy for people to do business with you.

checkmark_red Outbound links: Make sure the websites that you link to are 100% relevant to your business and industry. Don’t think for a second that a hundred links to unrelated sites is better than 10 links to genre matching content. Consider each and every link.

 

trainingbook-backlinks Want to learn more about SEO strategies and tactics? We’re only a couple of months away from releasing our training section, but until then we have a little SEO primer called “Backlink Generation in Minutes.” You can download it for free using this link.

 

There are many extensive and exclusive factors that all search engines use when determining where your website ranks amongst the others. The bottom line is is that to truly conquer SEO, your site must be relevant, informative, user friendly, and trusted.

Bookmark and Share DotnetKicks dotnetshoutout

Using KML, KMZ, PushPins, and more with Bing Maps

By Alan S. at August 26, 2010 02:17
Filed Under: Training, Web / Software Development

imageAn Example-Driven, Beginner's Guide to Building Interactive Maps with Bing, Yahoo!, and Google Maps is finally here!

 

Map Scripting 101: An Example-Driven Guide to Building Interactive Maps with Bing, Yahoo!, and Google Maps (No Starch Press, Aug 2010, 376 pp, $34.95, ISBN 9781593272715) is an example-based beginner's guide to map scripting. Author Adam DuVander delivers a cookbook of 73 immediately useful mapping scripts like a local concert tracker, a Twitter friend-finder, and a real-time weather map. And because the book is based on the cross-platform Mapstraction JavaScript library, readers can use virtually any mapping service, including OpenStreetMap, MapQuest, Google Maps, Yahoo!, and Bing.

 

In this book, you’ll learn to:

checkmark_red Create, embed, and manipulate basic maps by setting zoom levels and map boundaries

checkmark_red Show, hide, and filter location markers and info-bubbles

checkmark_red Customize maps for visitors based on their location

checkmark_red Use common data formats like Google Earth's KML, GeoRSS, and GPS XML (GPX)

checkmark_red Create graphical overlays on maps to better analyze data and trends

checkmark_red Use freely available geodata from websites like Yelp and Upcoming—and public domain geodata from the US government

 

We do a lot of work with Bing Maps and this book is already getting worn from use. The step by step guide and the library reference is incredibly helpful and drastically cuts our development time. If you work with Google Maps or Bing Maps then this script reference is something that should be open and on your desk!

Bookmark and Share DotnetKicks dotnetshoutout

Hidden Google SEO marketing gem

By Alan S. at August 16, 2010 12:09
Filed Under: Training, Web / Software Development

In putting together our training curriculum, we added a section talking about how Google has so many tools and add-ons to make your SEO life a lot easier. One of them is a buried little gem called the “Wonder Wheel.”

image

 

At left is a screen shot of where to find the elusive '”Wonder Wheel.” After you enter your search term and Google displays the search results, click on the “More Search Terms” link on the left side menu bar.

 

This will expand the menu at left and display additional options for your search and SEO activities.

“Wonder Wheel” is useful for determining the associative keywords for the search term entered. For example, our test search term “email scraper” shows a “Wonder Wheel” of items such as “email extractor” and “email harvester.”

image

 

The image at right shows what Google displays when you enter our search term like “eMail Scraper.”

 

Google does limit the number of spokes displayed to only give you the best options for keyword determination.

 

The neat thing about this tool is that you can actually crawl through the spokes of the wheel and expand them to get more keyword ideas.

 

If we hit the link that is for “Craigslist email scraper,” we see that the image now rubber-bands out and we can now see where that spoke takes us.

image

Now we are presented with a new set of strong keyword phrases that are determined based of the linked text (Craigslist email scraper).

 

The links and lists can seem to go on forever. It’s best to stick with your power search phrase (“email scraper” in our example) and work with the keywords shown in the first spokes.

 

Once you have these keywords, be sure to use them within your posts and pages, H1 and H2 tags, your site description and your site content. This is just another example of the type of information you will receive in our training curriculum.

 

We hope to have initial publishing done this week and will always be adding more and more products and training materials. Be sure to also look for our upcoming PodCasts! Happy marketing!

Bookmark and Share DotnetKicks dotnetshoutout

The benefits of Custom Programming Services

By Alan S. at August 15, 2010 12:55
Filed Under: General, Training, Web / Software Development

What can custom programming, software and computer services do to expand and benefit your business?


image A custom program is fully customized software based on the specific requirements of your business. For example, if you need custom programming that meets various business demands such as a seamless shopping cart integration into your Web site or a Customer Relations Management (CRM) system to help you manage interactions with your customers, then eSource Development's custom programming software services may be the answer for you.

 

The key to successful custom programming is project definition. The project software definition defines such things as your customer base and demographics, operational business needs, computer hardware, image requirements and revenue-generating opportunities. It's a consultative process, which combines your business knowledge with our custom programming expertise to provide you with a proper business solution.

 

eSource Development provides web development, custom software programming and database design solution services. Our consultants work within a discipline that starts with defining your needs in detail. We prepare a firm time-line and setup a reporting process so you know where your project stands every step of the way. From the start-up companies to multinational firms, eSource has a proven record of success. Our staff has worked for companies from small businesses to Fortune 500's.

 

The services we provide have many different titles - application development, custom programming, web development, IT consulting, b2b development, software design, database design, html programming, web programming, c programming... the list goes on and on. Most of our clients don't know exactly what they want when they call us but they do know of a problem that needs to be solved or an opportunity that needs to be leveraged. We take the client's needs and provide an elegant business solution, turning our client's ideas into digital business reality.

 

We will work with your business to help you determine exactly what you need, then come up with a plan to achieve it within your time and budget requirements. Custom software programming services and development is a complex process, but we are experts at getting these types of projects completed and implemented quickly. You control the process and can count on us to get your development done in a timely and cost effective manner.


Custom Software Database Design and Development
image

eSource Development turns your ideas into digital business reality. We work with key people within your organization to learn their unique business approach and apply our experience and technical programming expertise to provide the optimum custom technical software solution for your business needs. We build custom programming solutions tailored to your unique business model and geared to optimize the success of your organization for a fixed price.

 

Our custom software solutions are often cheaper than buying a packaged program. After all, your organization is successful due to its unique value proposition to your industry. Why should the system that runs your business be the same as your competition’s?


Custom Software Programming Support

We provide support for our applications and monthly reports concerning the performance and state of your system at a fixed monthly cost. With an eSource Development support contract, your application will be periodically upgraded as new, proven programming technologies become available that can improve it.

 

System Troubleshooting and Performance Tuning

At eSource Development, we leverage the combined experience of our custom development staff, our partnerships, an extensive set of proven tools, and an analytical systematic approach to problem solving that will identify and resolve your computer application problems in a quick and concise manor. We are experts at solving problems with ASP, .NET, C#, C++, VBScript, J Script, Visual Basic, MySQL, Microsoft SQL Server, Microsoft IIS, Bing Maps, and much more!

 

Contact eSource Development if you have a custom programming assignment, question, or bid request. We look forward to hearing from you!

image

 

Bookmark and Share DotnetKicks dotnetshoutout

Are SSL Certificate Authorities being outsourced?

By Alan S. at August 14, 2010 06:07
Filed Under: General, Web / Software Development

MIGUEL HELFT: SAN FRANCISCO — Computer security researchers are raising alarms about vulnerabilities in some of the Web’s most secure corners: the banking, e-commerce and other sites that use encryption to communicate with their users.


Those sites, which are typically identified by a closed lock displayed somewhere in the Web browser, rely on a third-party organization to issue a certificate that guarantees to a user’s Web browser that the sites are authentic. But as the number of such third-party “certificate authorities” has proliferated into hundreds spread across the world, it has become increasingly difficult to trust that those who issue the certificates are not misusing them to eavesdrop on the activities of Internet users, the security experts say.


ssl certificatesThe power to appoint certificate authorities has been delegated by browser makers like Microsoft, Mozilla, Google and Apple to various companies, including Verizon. Those entities, in turn, have certified others, creating a proliferation of trusted “certificate authorities,” according to Internet security researchers.

 
According to the Electronic Frontier Foundation, more than 650 organizations can issue certificates that will be accepted by Microsoft’s Internet Explorer and Mozilla’s Firefox, the two most popular Web browsers. Some of these organizations are in countries like Russia and China, which are suspected to engage in widespread surveillance of their citizens.

 

It’s a disturbing trend, especially when bringing in China or Russia. In some cases, like GoDaddy, they seem to simply be a reseller for Verisign, as opposed to being their own issuing authority. A reseller situation is different than outsourcing. Reseller’s are given restricted access to only the art of selling the product. The distribution and overall ownership of that certificate remains with the owning company, like Verisign. Outsourcing on the other hand gives the contracted entity full access to manage, distribute, and record the public and private keys of all applicants.

 

It’s probably nothing to worry about in regards you using big name sites like BofA, American Express, or any other Fortune 500 company’s who take that security extremely seriously. Plus, these sites are likely housed in the US, so even the transmission and storage of that information is at east on the home court.

Bookmark and Share DotnetKicks dotnetshoutout

How to capitalize the first letter of each word in a string

By Alan S. at July 23, 2010 12:43
Filed Under: Web / Software Development

This is going to be the shortest post on this board, and one of the most embarrassing!

 

I ‘inherited’ a file full of string values that contained over 10,000 entries. Problem was, they were all lower case. I wasn’t about to sit there and manually capitalize the first letter of each word in the list so I thought, “Hey… just write a quick function in the program that does it for you. It should only take a few lines, right?” Well, not for me.

 

I started working on a function that read in each line, searched for the first character and capitalized it. But how would you account for some words that should not be capitalized like ‘de’ as in “Cul de Sac” or initials or abbreviations? The more I thought about it, the more complex the function got. I started worrying that I was missing something… Well, I was.

 

Like I said, it’s kind of embarrassing, but while Googling to try and make sure I covered all my bases, I came across this gem on the MSDN site:

 

myString = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase( myString );

 

I couldn't believe it. It takes care of all automatic capitalization of the first letter of a word or string of words... Ugh! Oh well, I hope at least it saves some developer an hour of headaches!

Bookmark and Share DotnetKicks dotnetshoutout

Setting up IIS to allow download of EXE and ZIP files

By Alan S. at July 23, 2010 02:45
Filed Under: General, Web / Software Development

Before IIS7, the main method for allowing users to download files of a protected type (exe, zip, etc.) meant writing a function based off the Stream method and writing the file out based on individual name. Thankfully with IIS7+ there is a much easier way.

 

First, I would recommend that all files meant for internet user download be maintained in a separate virtual directory. For example, if your site was called www.mysite.com, the downloadable files should be in a directory like www.mysite.com/userdownloads. Once the files are in place, you need to do the following:

 

1)  Open the IIS 7.0 (or later) Manager on the server

2)  Select the site and click on "Handler Mappings"

3)  Select "Add Module Mapping"

4)  Enter the fields on the window:

     a)  Request Path:   where are the files to be found don't put a leading slash.  Example: "userdownloads/*.exe" to allow all files in the userdownloads directory ending in .exe to be downloaded when the request is for any executable file within the virtual path that you would have defined earlier.

     b)  Module:  StaticFileModule - this will handle requests containing your request path and return the file to you.

     c)  Executable:  don't enter anything.

     d)  Name:  whatever you want to call it:  "ClientSide Executables"

5)  Click on "Request Restrictions" and click on the checkbox and ensure that "File" option is selected.  (This will only apply to files)

6)  Click on the "Access" tab.  Ensure that "Script" is selected.

7)  Click on "OK" to close this window

8)  Click on "OK" to close the main Handler screen.

9)  Your handler should now appear in the list with the other handlers. 

10)  Test it out by opening a browser and accessing an executable file.

Bookmark and Share DotnetKicks dotnetshoutout

How to populate a TreeView control using XML with NO root

By Alan S. at July 14, 2010 11:09
Filed Under: Web / Software Development

For our latest software venture, we needed to create a tree view listing of all the countries that we were going to support. Naturally, we created an XML input file that was formed like this:

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <Countries>
   3:   <Country Name="Argentina" value="http://buenosaires.en.craigslist.org">
   4:   </Country>
   5:   <Country Name="Australia" value="http://sydney.craigslist.com.au">
   6:       <Region Name="Adelaide" value="http://adelaide.craigslist.com.au" />
   7:       <Region Name="Brisbane" value="http://brisbane.craigslist.com.au" />
   8:       <Region Name="Cairns" value="http://cairns.craigslist.com.au" />
   9:       <Region Name="Canberra" value="http://canberra.craigslist.com.au" />
  10:       <Region Name="Darwin" value="http://darwin.craigslist.com.au" />
  11:       <Region Name="Gold Coast" value="http://goldcoast.craigslist.com.au" />
  12:       <Region Name="Melbourne" value="http://melbourne.craigslist.com.au" />
  13:       <Region Name="Newcastle" value="http://ntl.craigslist.com.au" />
  14:       <Region Name="Perth" value="http://perth.craigslist.com.au" />
  15:       <Region Name="Sydney" value="http://sydney.craigslist.com.au" />
  16:       <Region Name="Tasmania" value="http://hobart.craigslist.com.au" />
  17:       <Region Name="Wollongong" value="http://wollongong.craigslist.com.au" />
  18:   </Country>
  19:   <Country Name="Austria" value="http://vienna.en.craigslist.at">
  20:   </Country>
  21: ... and so on...

The problem was that XML requires a root element (in this case, Countries). This meant that just blindly loading the XML left us with a single root node (Countries) with all the individual country information (Country) listed below that. We wanted to start our TreeView with the Country listings as root elements.

 

The solution was to create a reader function that would skip the root element found in traditional reader samples, like the example on Microsoft’s MSDN site. We created a function here that does just that.

   1: private void OnFormLoad(object sender, EventArgs e)
   2: {
   3:     try
   4:     {
   5:         XmlDocument dom = new XmlDocument();
   6:         dom.Load("CountryList.xml"); 
   7:         treeView1.Nodes.Clear();
   8:         AddTreeViewChildNodes(treeView1.Nodes, dom.DocumentElement);
   9:         treeView1.Refresh();
  10:         treeView1.CollapseAll();
  11:     }
  12:     catch (XmlException xmlEx)
  13:     {
  14:         MessageBox.Show(xmlEx.Message);
  15:     }
  16:     catch (Exception ex)
  17:     {
  18:         MessageBox.Show(ex.Message);
  19:     }
  20: }
  21:  
  22: private void AddTreeViewChildNodes(TreeNodeCollection parent_nodes, XmlNode xml_node)
  23: {
  24:     foreach (XmlNode child_node in xml_node.ChildNodes)
  25:     {
  26:         // Make the new TreeView node.
  27:         TreeNode new_node = parent_nodes.Add(child_node.Attributes["Name"].Value);
  28:         // Recursively make this node's descendants.
  29:         AddTreeViewChildNodes(new_node.Nodes, child_node);
  30:         // If this is a leaf node, make sure it's visible.
  31:         if (new_node.Nodes.Count == 0) new_node.EnsureVisible();
  32:     }
  33: }

The code is deceptively simple… It’s only 3 lines of recursive C#. You can always change the text that is displayed by manipulating the child_node.Attributes["Name"].Value line. It’s important to call treeView1.Refresh() when the function is complete to ensure all of the boxes and nodes are fully drawn.

 

imageWhat we’re left with is a nice TreeView control that has each country listed as a root element, despite what the XML says.

 

BTW: If your wondering how we did the 3 state checkbox, that information will be provided in a later post.

Bookmark and Share DotnetKicks dotnetshoutout

2 new titles being released by eSource Development

By Alan S. at July 10, 2010 05:22
Filed Under: Marketing, Web / Software Development

eSource Development has announced that they will be coming out with 2 brand new software titles this month. One is built on our popular eMail Scraper™, the other is a full featured website walker.

 

mainimage Craigslist Companion™ will feature some of the same email scraping capabilities of eMail Scraper, as well as a watcher program that runs in the background and searches for new listings based on your geographic selections and search criteria.'

 

Look for our BETA version out next week.

 

The second program is eSource WebWalker™. It is a full featured website crawler that allows you to specify a URL and have all of the codes, sitemaps, URL’s, and complete file breakdown within seconds. The results can then be exported to XML or HTML. eSource WebWalker™ will also feature an SEO tool that will let you see the top number of Google search results based on the keywords you enter. You can then see on the results page the exact location, count, and type of keywords used that makes them get top Google Rankings.

 

Look for BETA versions of both software to be available next week.

Bookmark and Share DotnetKicks dotnetshoutout

Creating a Bing Maps (Virtual Earth) backend with custom pushpins

By Alan S. at June 29, 2010 02:10
Filed Under: Web / Software Development

Any web application using Bing Maps has to offer something specific to that site or program. For example, you might have a database of speed cameras for your city and want to offer your visitors a way to define search parameters and display the results with custom pushpin graphics.

 

Check out these reference books for Bing Maps, Google Earth, and Map Scripting:

 

The heart and soul of this functionality lies in a basic cross-platform Pushpin class that can be set up and populated using a C# backend, then passed to a JavaScript function that can read the generic data types in the class, parse them, and display the information.

   1: namespace App_Code
   2: {
   3:     public class Pushpin
   4:     {
   5:         private double latitude;
   6:         private double longitude;
   7:         private string title;
   8:         private string description;
   9:         private string imageUrl;
  10:  
  11:         public double Latitude
  12:         {
  13:             get { return latitude; }
  14:             set { this.latitude = value; }
  15:         }
  16:  
  17:         public double Longitude
  18:         {
  19:             get { return longitude; }
  20:             set { this.longitude = value; }
  21:         }
  22:  
  23:         public string Title
  24:         {
  25:             get { return title; }
  26:             set { this.title = value; }
  27:         }
  28:  
  29:         public string Description
  30:         {
  31:             get { return description; }
  32:             set { this.description = value; }
  33:         }
  34:  
  35:         public string ImageUrl
  36:         {
  37:             get { return imageUrl; }
  38:             set { this.imageUrl = value; }
  39:         }
  40:  
  41:         public Pushpin()
  42:         {
  43:             this.latitude = 0;
  44:             this.longitude = 0;
  45:             this.plancount = 0;
  46:             this.title = "";
  47:             this.description = "";
  48:             this.imageUrl = "";
  49:         }
  50:  
  51:         public Pushpin(double latitude, double longitude,
  52:             string title, string description, string imageUrl)
  53:         {
  54:             this.latitude = latitude;
  55:             this.longitude = longitude;
  56:             this.title = title;
  57:             this.description = description;
  58:             this.imageUrl = imageUrl;
  59:         }
  60:     }
  61: }

In the code above, we start by declaring a Namespace (App_Code). The Pushpin class has basic information like latitude, longitude, title, description, and an image URL (imageurl). Our C# backend will populate each of these values and return an array of Pushpin objects to the Javascript function our map page.

 

Next , we need to create a web service to accommodate our requests to populate the plot points of our speed camera locations. We create a SpeedCameraQueryService.asmx file that is empty except for providing an interface to our backend function:

   1: <%@ WebService Language="C#" CodeBehind="~/App_Code/SpeedCameraQueryService.cs" Class="SpeedCameraQueryService" %>
   2:  

And here is the corresponding SpeedCameraQueryService.cs file (placed in our App_Data directory).

   1: using App_Code;
   2: using System.Data;
   3:  
   4: [WebService]
   5: [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
   6: // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
   7: [ScriptService]
   8: public class SpeedCameraQueryService : WebService {
   9:  
  10:     [WebMethod]
  11:     public Pushpin[] GetAllInfo()
  12:     {
  13:         ArrayList ppArray = new ArrayList();
  14:         Pushpin pGeneric;
  15:         /* HERE IS WHERE YOU INSERT YOUR QUERY OR DATA READ */
  16:         /* When done, iterate thru your results... */
  17:         foreach (SpeedCamera.productRow r in MyDatatable)
  18:         {
  19:             pGeneric = new Pushpin( r.Lat,
  20:                 r.Long,
  21:                 r.Title,
  22:                 r.Description,
  23:                 "Images/plotpin2.png");
  24:             ppArray.Add(pGeneric);
  25:         }
  26:         Pushpin[] ia = (Pushpin[])ppArray.ToArray(typeof(Pushpin));
  27:         return ia;
  28:     }

Now, in our map.aspx file, we implement a Javascript function that is run when your users click a button on your webpage asking for the location of your speed cameras.

   1: var _PushpinLayer;
   2: _PushpinLayer = new VEShapeLayer();
   3: // our VEMap variable, map, gets the empty shape layer added
   4: // This line should go in your 'load' function that creates your map.
   5: map.AddShapeLayer(_PushpinLayer);
   6:  
   7: // Now we have the function that gets called when a user clicks
   8: // the button requesting to see our speed camera data.
   9: function PreviewPlots() {
  10:     var _totalRet = 0;
  11:     _PushpinLayer.DeleteAllShapes();
  12:     SpeedCameraQueryService.GetAllInfo(onGetComplete, onGetFailed);
  13:     function onGetComplete(result) {
  14:         PlotPreviewData(result);
  15:     }
  16:     function onGetFailed(result) {
  17:         alert("Error while connecting to the remote web service. Please try again later.");
  18:     }
  19: }
  20:  
  21: function PlotPreviewData(data) {
  22:     if (data == null)
  23:         return;
  24:     for (var i = 0; i < data.length; i++) {
  25:         var currPushpin = data[i];
  26:         var pushpinLocation = new VELatLong(currPushpin.Latitude, currPushpin.Longitude);
  27:         var shape = new VEShape(VEShapeType.Pushpin, pushpinLocation);
  28:         var customIconUrl = currPushpin.ImageUrl;
  29:         if (customIconUrl != "") {
  30:             shape.SetCustomIcon(customIconUrl);
  31:         }
  32:         shape.SetTitle(currPushpin.Title);
  33:         shape.SetDescription(currPushpin.Description);
  34:         _PushpinLayer.AddShape(shape);
  35:     }
  36: }

 

THE Definitive guide for Bing Maps! Now available on Amazon.com!

Click on the “Map Scripting 101” book at left to find out about this incredible book on map scripting covering Bing, Google, and Yahoo!

 

If you need assistance or have questions in setting up your application / web site to import KML files, please send us a message and we will schedule a call and let you know how we can help!

 

Bookmark and Share DotnetKicks dotnetshoutout


   

eMail Scraper
Generate email lists in seconds!


eSource Development presents the ultimate tool for email lead generation! They have decided to release the hottest email list generation tool that allows you to get hundreds (even THOUSANDS) of specific email addresses for any genre, niche, or geographical area.

Internet marketing companies and professionals have been using this tool for years. Now, it has been re-engineered, updated, and released to the public. This 'insider only' software was a closely guarded industry secret until recently.



Watch the Demo

NEW! Trial version available!

DOWNLOAD FOR FREE




  


Dr. Torgo's PC
System Inventory v2.0


Dr. Torgo's PC System Inventory offers a full range of system query options and powerful reporting tools. This software quickly generates reports on several dozen hives of system information including disks, CPU, memory, motherboard, users, ports, services, software, and MORE.

Read more here!

NEW! Trial version available!
DOWNLOAD FOR FREE


Help us out by visiting our sponsors!

GameFly







Recent Comments

Comment RSS

What We're Playing





Who's Watchin' Me?