xxxxxxxxxx
var yuck; // this is gonna hold all the stuff that comes back
var loca; // this is the location of the stuff
var NUMRESTAURANTS = 10;
var baseurl = 'https://data.cityofnewyork.us/resource/9w7m-hzhe.json?$limit='+NUMRESTAURANTS;
var city = 'New York, NY';
var WHICHRESTAURANT = 0;
var drawing = 0;
var LATMIN = 40.495992;
var LATMAX = 40.915568;
var LONGMIN = -74.257159;
var LONGMAX = -73.699215;
var THESCALE = 1;
var XOFFSET = 0;
var YOFFSET = 0;
function preload() {
var URL = baseurl;
console.log('downloading... ' + URL);
yuck = loadJSON(URL);
}
function dogeocode()
{
console.log('geocoding... ' + WHICHRESTAURANT);
var geourl = 'https://www.mapquestapi.com/geocoding/v1/address?key=rDz5dqQpjbkQxzs1ktmvT3qcaw0QTxNf&inFormat=kvp&outFormat=json&thumbMaps=false&location=';
var thestuff = yuck[WHICHRESTAURANT];
var c = thestuff.building + ' ' + thestuff.street + ' ' + thestuff.boro + ' New York, NY';
loca = loadJSON(geourl+c, geonext);
}
function geonext()
{
background(255);
text("loaded... " + WHICHRESTAURANT, width/2, height/2);
console.log('geocoded... ' + WHICHRESTAURANT);
yuck[WHICHRESTAURANT].latitude = loca.results[0].locations[0].latLng.lat;
yuck[WHICHRESTAURANT].longitude = loca.results[0].locations[0].latLng.lng;
// if(yuck[WHICHRESTAURANT].latitude<LATMIN) LATMIN = yuck[WHICHRESTAURANT].latitude;
// if(yuck[WHICHRESTAURANT].latitude>LATMAX) LATMAX = yuck[WHICHRESTAURANT].latitude;
// if(yuck[WHICHRESTAURANT].longitude<LONGMIN) LONGMIN = yuck[WHICHRESTAURANT].longitude;
// if(yuck[WHICHRESTAURANT].longitude>LONGMAX) LONGMAX = yuck[WHICHRESTAURANT].longitude;
WHICHRESTAURANT++;
if(WHICHRESTAURANT<NUMRESTAURANTS) {
console.log('yikes');
yikes(); // do another one
}
else {
console.log('done!!!');
drawing = 1;
}
}
function yikes() // do the next one
{
dogeocode();
}
function setup() {
createCanvas(windowWidth, windowHeight);
background(255);
stroke(0);
fill(0);
console.log(yuck);
dogeocode();
}
function draw() {
if(drawing==1)
{
resetMatrix();
translate(width/2 + XOFFSET, height/2 + YOFFSET);
background(255);
noFill();
stroke(0);
textSize(10);
textAlign(CENTER);
for(let i = 0;i<NUMRESTAURANTS;i++)
{
thestuff = yuck[i];
var y = map(thestuff.latitude, LATMIN, LATMAX, height*0.5*THESCALE, -height*0.5*THESCALE);
var x = map(thestuff.longitude, LONGMIN, LONGMAX, -width*0.5*THESCALE, width*0.5*THESCALE);
stroke(0);
ellipse(x, y, 20, 20);
stroke(255, 100, 100);
text(thestuff.dba, x, y-15);
text(thestuff.building + ' ' + thestuff.street, x, y);
if("violation_description" in thestuff) text(thestuff.violation_description.slice(0, 60), x, y+15);
}
if(keyIsPressed)
{
if(key=='+'||key=='=') THESCALE*=1.02;
if(key=='-') THESCALE/=1.02;
if(key=='ArrowUp') YOFFSET+=10;
if(key=='ArrowDown') YOFFSET-=10;
if(key=='ArrowLeft') XOFFSET+=10;
if(key=='ArrowRight') XOFFSET-=10;
if(key=='r') {
XOFFSET = 0;
YOFFSET = 0;
THESCALE = 1;
}
}
}
}
function keyPressed()
{
}