Advertisement
Guest User

Untitled

a guest
Jan 27th, 2012
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(document).ready(function(){
  2.     var myOptions = {
  3.         center: new google.maps.LatLng(45.492751,-122.803631),
  4.         zoom: 12,
  5.         mapTypeId: google.maps.MapTypeId.ROADMAP
  6.     };
  7.    
  8.     var routeDropZone = document.getElementById('route-import');
  9.     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  10.     var geocoder = new google.maps.Geocoder();
  11.  
  12.     routeDropZone.addEventListener("dragenter", dragEnter, false);
  13.     routeDropZone.addEventListener("dragexit", dragExit, false);
  14.     routeDropZone.addEventListener("dragover", dragOver, false);
  15.     routeDropZone.addEventListener("drop", drop, false);
  16.  
  17.     function dragEnter(evt) {
  18.         evt.stopPropagation();
  19.         evt.preventDefault();
  20.     }
  21.  
  22.     function dragExit(evt) {
  23.         evt.stopPropagation();
  24.         evt.preventDefault();
  25.     }
  26.  
  27.     function dragOver(evt) {
  28.         evt.stopPropagation();
  29.         evt.preventDefault();
  30.     }
  31.  
  32.     function drop(evt) {
  33.         evt.stopPropagation();
  34.         evt.preventDefault();
  35.  
  36.         var files = evt.dataTransfer.files;
  37.         var count = files.length;
  38.  
  39.         // Only call the handler if 1 or more files was dropped.
  40.         if (count > 0)
  41.             processFiles(files);
  42.     }
  43.  
  44.     function processFiles(files)
  45.     {
  46.         for(i = 0; i < files.length; i++)
  47.         {
  48.             file = files[i];
  49.             var reader = new FileReader();
  50.            
  51.             reader.onerror = function(stuff)
  52.             {
  53.                 console.log("error", stuff);
  54.                 console.log(stuff.getMessage());
  55.             }
  56.            
  57.             /*reader.onprogress = function(e)
  58.             {
  59.                 if (e.lengthComputable) {
  60.                     var loaded = ((e.loaded / e.total) * 100);
  61.                     if (loaded != 100)
  62.                     {
  63.                         $("#route-import-progress").html(loaded);
  64.                     }
  65.                     else
  66.                     {
  67.                         $("#route-import-progress").html('');
  68.                     }
  69.                 }
  70.             }*/
  71.            
  72.             reader.onloadend = function(e)
  73.             {
  74.                 importStops(e.target.result);
  75.             }
  76.             reader.readAsText(file);
  77.         }
  78.     }
  79.    
  80.     function importStops(text)
  81.     {
  82.         console.log('Info', "Importing route");
  83.         var lines = text.split("\n");
  84.        
  85.         for (var i in lines)
  86.         {
  87.             var stop = lines[i].split('~');
  88.             newStop = new Object();
  89.             newStop.index = (parseInt(i) + 1);
  90.             newStop.packages = stop[0];
  91.             newStop.weight = stop[1];
  92.             newStop.service = stop[2];
  93.             newStop.name = stop[3];
  94.             newStop.house = stop[4];
  95.             newStop.street = stop[5];
  96.             newStop.street2 = stop[6];
  97.             newStop.city = stop[7];
  98.             newStop.zip = stop[8];
  99.             newStop.route = stop[9];
  100.             addMarker(newStop);
  101.         }
  102.     }
  103.    
  104.     function addMarker(stop)
  105.     {
  106.         geocoder.geocode( { 'address': stop.house + " " + stop.street + " " + stop.city + " " + stop.zip }, function(results, status) {
  107.             if (status == google.maps.GeocoderStatus.OK)
  108.             {
  109.                 stop.marker = new google.maps.Marker({
  110.                     map: map,
  111.                     position: results[0].geometry.location,
  112.                 });
  113.                 stop.marker.setMap(map);
  114.             }
  115.             else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT)
  116.             {
  117.                 setTimeout(function() { addMarker(stop); }, (3000));
  118.             }
  119.             else
  120.             {
  121.                 alert("Geocode was not successful for the following reason: " + status);
  122.             }
  123.         });
  124.     }
  125. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement