Currently I have a picture of a map in Android Studio, and I was wondering how I'd be able to pull information from wunderground and display it on top of the map in each location.
This is the website with some sample code.
That would depend on the type of data. Concider an example that pulls eathquake data location from a JSON feed.
try {
JSONObject object = (JSONObject) new JSONTokener(JSONResponse)
.nextValue();
JSONArray earthquakes = object.getJSONArray("features");
for (int i = 0; i < earthquakes.length(); i++) {
JSONObject tmp = (JSONObject) earthquakes.get(i);
//Log.i("JSON: ",tmp.toString());
JSONObject geometry = tmp.getJSONObject("geometry");
JSONArray coords = geometry.getJSONArray("coordinates");
JSONObject properties = tmp.getJSONObject("properties");
//Log.i("Data", "Coords:"+coords.getString(0) + " "+ coords.getString(1)+"\n Place:"+properties.getString("place")+ " Mag:"+properties.getString("mag"));
if(coords.getString(0) != "" && coords.getString(1) != ""){
result.add(new EarthQuakeRec(
Float.parseFloat(coords.getString(1)),//Lat
Float.parseFloat(coords.getString(0)),//Long
Float.parseFloat(properties.getString("mag")),//Magnitude
properties.getString("place")
)
);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
And the JSON structure looks something like this:
{
"id": "nc72241526",
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.0102,
37.6053,
6
]
},
"properties": {
"detail": "http://earthquake.usgs.gov/earthquakes/feed/v1.0/detail/nc72241526.geojson",
"type": "earthquake",
"net": "nc",
"tsunami": null,
"sources": ",nc,",
"title": "M 3.0 - 1km NE of Union City, California",
"time": 1403371328500,
"updated": 1403374699020,
"mag": 3,
"types": ",dyfi,focal-mechanism,general-link,geoserve,nearby-cities,origin,phase-data,scitech-link,tectonic-summary,",
"place": "1km NE of Union City, California",
"status": "AUTOMATIC",
"ids": ",nc72241526,",
"alert": null,
"rms": 0.17,
"code": "72241526",
"url": "http://earthquake.usgs.gov/earthquakes/eventpage/nc72241526",
"magType": "Md",
"mmi": null,
"cdi": 3.8,
"tz": -420,
"felt": 319,
"nst": 75,
"dmin": 0.03593261,
"gap": 25.2,
"sig": 260
}
}
Then you would start with the JSONObject class and drill down to the data points of interest. Use the Log class to help you trouble shoot and gauge your progress in traversing your data structure. In my example, it is commented out.
For XML, you can try something to the tune of this:
try {
// Create the Pull Parser
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();
// Set the Parser's input to be the XML document in the HTTP Response
xpp.setInput(new InputStreamReader(response.getEntity()
.getContent()));
// Get the first Parser event and start iterating over the XML document
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
startTag(xpp.getName());
} else if (eventType == XmlPullParser.END_TAG) {
endTag(xpp.getName());
} else if (eventType == XmlPullParser.TEXT) {
text(xpp.getText());
}
eventType = xpp.next();
}
return mResults;
} catch (XmlPullParserException e) {
e.printStackTrace();
}
It is a lot to throw at you, but you did not give much specificity. Hope that helps. ;)