Presentation is loading. Please wait.

Presentation is loading. Please wait. Location Information. Temporal and Spatial Information Information can have temporal and spatial aspects Examples – The nearest XXX (xxx =

Similar presentations

Presentation on theme: " Location Information. Temporal and Spatial Information Information can have temporal and spatial aspects Examples – The nearest XXX (xxx ="— Presentation transcript:

1 Location Information

2 Temporal and Spatial Information Information can have temporal and spatial aspects Examples – The nearest XXX (xxx = restaurant, shoe store, …) – Directions can be thought of as: Given that I’m here now, what do I do next? – You are at an office door, the person is out. We can represent the information that the person in this office is out until 1pm – The building to the west is Gore Hall – The history of here (where here is where you are) Self guided tour – Local news – Nearest party (at this moment, or planned in the future) – Found art/found sound Music composers use found sound in their compositions. Examples include John Cage, Nicolas Collins, Art of Noise, The Slant (band), Robin Rimbaud AKA Scanner and The Books. – wikipedia “found art” Joe frank – Law enforcement / military intelligence A bad guy lives in that house, but is at his mother’s on Sundays, and today is Sunday. – More? Information can be relevant only when you are at the location, when you are planning to go to the location, or for browsing – Browsing e.g., getting information about what is going on at different places throughout a city

3 Several datasets of locations – had a large dataset and gave it to – This dataset is called Places Factual has other datasets – Restaurants We’ll explore this one after we finish with places – Entertainment – Health – education

4 Start sample app Get source – From – See link for non-maven users at – Decompress source Note: there are some minor bugs in the source. So we cannot import the libraries. Instead, we will import the source code and correct these minor bugs – Documentation is as javadoc.jar!/com/factual/Factual.html javadoc.jar!/com/factual/Factual.html Make new application – TestFactual – Add permissions for (don’t skip this step like I did!) Internet Location (course and fine) Wifi access and change Make packages for the factual source – Right click on src -> new -> package – Package name: com.factual.data_science_toolkit Make another package – Package name: com.factual.driver Open a file browser and go to directory where you decompressed the factual source code Drag files in com/fractual/data_science_toolkit to package com.factual.data_science you just made Drag files in com/fractual (the files, not the directory /data_science) to the com.factual.driver package you just made

5 Get and import a many libraries Get guava – – Get guave-xx.x.jar – Save, add library In eclipse, right click on your project FractualTest Select Build Path -> Configure Build Path Dialog opens Select Libraries tab Click Add External Jar button Locate and select the jar file you just downloaded In the Java Build Path dialog, select Order and Export tab Find the library you just added. Make sure the check box is checked Get google-api-java-client – client/downloads/detail?name=google-api-java-client- client/downloads/detail?name=google-api-java-client- – Get – Save in directory googleJavaClient – Decompress – There are many libraries. Just import google-http-client-XXX.jar google-oauth-client-xxx.jar Get codehaus.jackson – – Scroll down to Download. Look for deployable jars. Get Jackson all. It should be called something like jackson- all-XXX.jar – Save in directory codehaus/jackson – Import jackson-all-XXX.jar Get – 90211 90211 – Download jar – Save in directory JSON – import Get juint – – Get juint-4.10.jar – Save in file juint – import Get apache – – Get binaries (e.g., zip) – Save in directory ApacheCommons/io – Decompress – The jar commons-io-xx.jar is in the commons-io-xx directory – Import Note, this is a lot of libraries. It will make the executable large. – ProGuard ( ols/proguard.html) can be used to make you code smaller ols/proguard.html

6 Eclipse memory problems Will need to allow eclipse to use more memory. To fix the problem, see x-gc-overhead-limit-exceeded x-gc-overhead-limit-exceeded I set – -Xms1024 – -Xmx2048

7 Get some basic data from factual Make function: public void getFactualData Add – Log.e("factual","starting"); – Factual factual = new Factual("9uEYTRbG1gizXlePqU3ZqM3cJqQUADoADiJQxii1", "vgagHeXbsnQ05rCyCYBCrWyTr3VeCGZW095LE6xc"); – Query query = new Query().within(new com.factual.Circle(34.06018, - 118.41835, 5000)).limit(10).sortAsc("name"); – // gets up to 10 items that are in the 5000m circle around the lat-long point 34.06018, -118.41835. and these are sorted by name – Log.e("factual","made query. Now fetching"); – ReadResponse readResponse = factual.fetch("places", query); – showResponse(readResponse); // need to make this function

8 showResponse(readResponse); public void showResponse(ReadResponse readResponse) { – List > data = readResponse.getData(); – System.out.println("num items: "+data.size()); – for(Map item : data) { System.out.println("************new item***************"); // see for schema Double latitude = (Double)item.get("latitude"); if (latitude==null) – System.out.println("latitude does not exist"); else – System.out.println("latitude: "+latitude); Double longitude = (Double)item.get("longitude"); if (longitude==null) – System.out.println("longitude does not exist"); else – System.out.println("longitude: "+longitude); String name = (String)item.get("name"); if (name==null) – System.out.println("name does not exist"); else – System.out.println("name: "+name); String category = (String)item.get("category"); if (category==null) – System.out.println("category does not exist"); else – System.out.println("category: "+category);

9 Show Address of place String address = (String)item.get("address"); if (address==null) – System.out.println("address does not exist"); else – System.out.println("address: "+address); String address_extended = (String)item.get("address_extended"); if (address_extended==null) – System.out.println("address_extended does not exist"); else – System.out.println("address extended: "+address_extended); String locality = (String)item.get("locality"); if (locality==null) – System.out.println("locality does not exist"); else – System.out.println("locality: "+locality); String village = (String)item.get("village"); if (village==null) – System.out.println("village does not exist"); else – System.out.println("village: "+village); String regency = (String)item.get("regency"); if (regency==null) – System.out.println("regency does not exist"); else – System.out.println("regency: "+regency); String region = (String)item.get("region"); if (region==null) – System.out.println("region does not exist"); else – System.out.println("region: "+region); String admin_region = (String)item.get("admin_region"); if (admin_region==null) – System.out.println("admin_region does not exist"); else – System.out.println("admin_region: "+admin_region); String post_town = (String)item.get("post_town"); if (post_town==null) – System.out.println("post_town does not exist"); else – System.out.println("post_town: "+post_town); String postcode = (String)item.get("postcode"); if (postcode==null) – System.out.println("postcode does not exist"); else – System.out.println("postcode: "+postcode); String country = (String)item.get("country"); if (country==null) – System.out.println("country does not exist"); else – System.out.println("country: "+country);

10 Show other things String tel = (String)item.get("tel"); if (tel==null) – System.out.println("tel does not exist"); else – System.out.println("tel: "+tel); String fax = (String)item.get("fax"); if (fax==null) – System.out.println("fax does not exist"); else – System.out.println("fax: "+fax); String website = (String)item.get("website"); if (website==null) – System.out.println("website does not exist"); else – System.out.println("website: "+website); String status = (String)item.get("status"); if (status==null) – System.out.println("status does not exist"); else – System.out.println("status: "+status); String email = (String)item.get("email"); if (email==null) – System.out.println("email does not exist"); else – System.out.println("email: "+email); String factual_id = (String)item.get("factual_id"); if (factual_id==null) – System.out.println("factual_id: does not exist"); else – System.out.println("factual_id: "+item.get("factual_id"));

11 In onCreate In onCreate, call getFactualData Run it. Crashed? Why?! StrictMode … onNetwork – Don’t use network from UI thread. Especially when starting (i.e., onCreate) – Use threads Won’t crash on older phones, only android version>=4

12 Simple thread Android has several simple ways to make theads In onCreate new Thread(new Runnable() { – public void run() { getFactualData(); – }}).start(); – // this runs the run function from a thread – // communicating back to the UI thread is a bit tricky. (that is, do not call any UI elements from this thread!) – So another threading mechanism

13 AsyncTask At the end of public class FactualTestActivity extends Activity {, add – private class runFactualQuery extends AsyncTask {} Leteclipse add unimplemented functions. In doInBackground, add – getFactualData(); – Return true; Add member function – @Override – protected void onPostExecute(Boolean results) { // UI thread is accesible here Log.e("factual","finished thread"); – }

14 In onCreate, add – new runFactualQuery().execute();

15 Other query types recall Query query = new Query().within(new com.factual.driver.Circle(34.06018, - 118.41835, 5000)).limit(10).sortAsc("name"); // gets up to 10 items that are in the 5000m circle around the lat-long point 34.06018, -118.41835. and these are sorted by name – Get the next 10 items Change.limit(10) to.limit(10).offset(10) – Full text search Query query = new Query().search("newark delaware").limit(10); Searches for newark and delaware anywhere in the data – Restrict data Query query = new Query().field("locality").beginsWith("Newark").field("region").equal("DE").lim it(10); // for other options besides equals, see QueryBuilder. Options include: in, notIn, beginsWith


Download ppt " Location Information. Temporal and Spatial Information Information can have temporal and spatial aspects Examples – The nearest XXX (xxx ="

Similar presentations

Ads by Google