$(document).ready(function(){
var myOptions = {
center: new google.maps.LatLng(45.492751,-122.803631),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var routeDropZone = document.getElementById('route-import');
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var geocoder = new google.maps.Geocoder();
routeDropZone.addEventListener("dragenter", dragEnter, false);
routeDropZone.addEventListener("dragexit", dragExit, false);
routeDropZone.addEventListener("dragover", dragOver, false);
routeDropZone.addEventListener("drop", drop, false);
function dragEnter(evt) {
evt.stopPropagation();
evt.preventDefault();
}
function dragExit(evt) {
evt.stopPropagation();
evt.preventDefault();
}
function dragOver(evt) {
evt.stopPropagation();
evt.preventDefault();
}
function drop(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files;
var count = files.length;
// Only call the handler if 1 or more files was dropped.
if (count > 0)
processFiles(files);
}
function processFiles(files)
{
for(i = 0; i < files.length; i++)
{
file = files[i];
var reader = new FileReader();
reader.onerror = function(stuff)
{
console.log("error", stuff);
console.log(stuff.getMessage());
}
/*reader.onprogress = function(e)
{
if (e.lengthComputable) {
var loaded = ((e.loaded / e.total) * 100);
if (loaded != 100)
{
$("#route-import-progress").html(loaded);
}
else
{
$("#route-import-progress").html('');
}
}
}*/
reader.onloadend = function(e)
{
importStops(e.target.result);
}
reader.readAsText(file);
}
}
function importStops(text)
{
console.log('Info', "Importing route");
var lines = text.split("\n");
for (var i in lines)
{
var stop = lines[i].split('~');
newStop = new Object();
newStop.index = (parseInt(i) + 1);
newStop.packages = stop[0];
newStop.weight = stop[1];
newStop.service = stop[2];
newStop.name = stop[3];
newStop.house = stop[4];
newStop.street = stop[5];
newStop.street2 = stop[6];
newStop.city = stop[7];
newStop.zip = stop[8];
newStop.route = stop[9];
addMarker(newStop);
}
}
function addMarker(stop)
{
geocoder.geocode( { 'address': stop.house + " " + stop.street + " " + stop.city + " " + stop.zip }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK)
{
stop.marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
});
stop.marker.setMap(map);
}
else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT)
{
setTimeout(function() { addMarker(stop); }, (3000));
}
else
{
alert("Geocode was not successful for the following reason: " + status);
}
});
}
});