Мне нужна помощь в получении лат и лон. Я имею в виду следующее: я выполнил анализ лата и лона из Интернета (используя XMLPullParser). Теперь моя самая большая проблема - получить все значения (широта и долгота) и нанести их на карту. Пожалуйста, помогите!
Вот мой класс Parser:
public class Parser {
//Feed Parsing Method
public ArrayList<Bakery> parse(String url) {
//Array of Episode Objects
ArrayList<Bakery> bakeries = null;
try {
//Encode the URL into a URL Object
URL bakery_feed_url = new URL(url);
//Open a Connection to the feed
XmlPullParser parser = Xml.newPullParser();
try {
parser.setInput(bakery_feed_url.openConnection().getInputStream(), null);
} finally {
}
int event_type = parser.getEventType();
Bakery current_bakery = null;
boolean done = false;
//Parse the feed, start reading throughout the feed from top to bottom
while (event_type != XmlResourceParser.END_DOCUMENT && !done){
String tag_name = null;
/*
lat = Integer.parseInt(parser.getAttributeValue(null,"lat"));
lon = Integer.parseInt(parser.getAttributeValue(null,"lon"));
grade = Integer.parseInt(parser.getAttributeValue(null,"grade"));
*/
switch (event_type){
//Found the start of the feed
case XmlResourceParser.START_DOCUMENT:
bakeries = new ArrayList<Bakery>();
break;
//Found a start tag
case XmlResourceParser.START_TAG:
//apply the data to our Episode object based on the tag name
tag_name = parser.getName();
if(tag_name.equalsIgnoreCase("place")){
current_bakery = new Bakery();
}else if(current_bakery != null){
if (tag_name.equalsIgnoreCase("phone_number")){
current_bakery.setPhone(parser.nextText());
}else if(tag_name.equalsIgnoreCase("city")){
current_bakery.setCity(parser.nextText());
}else if(tag_name.equalsIgnoreCase("province")){
current_bakery.setState(parser.nextText());
}else if(tag_name.equalsIgnoreCase("address")){
current_bakery.setAddress(parser.nextText());
}else if(tag_name.equalsIgnoreCase("lat")){
current_bakery.setLatitude(parser.nextText());
//double lat = Integer.parseInt(parser.getAttributeValue(null,"lat"));
// current_bakery.setLater(Integer.parseInt(parser.getAttributeValue(null, "lat")));
}else if(tag_name.equalsIgnoreCase("postal_code")){
current_bakery.setZip(parser.nextText());
}else if(tag_name.equalsIgnoreCase("lng")){
current_bakery.setLongitude(parser.nextText());
}else if(tag_name.equalsIgnoreCase("name")){
current_bakery.setPlace_name(parser.nextText());
}
}
break;
//An end tag has been reached
case XmlResourceParser.END_TAG:
tag_name = parser.getName();
//End of an Episode Item
if (tag_name.equalsIgnoreCase("place") && current_bakery != null){
bakeries.add(current_bakery);
//Reached the end of all bakeries, no more data to collect
} else if (tag_name.equalsIgnoreCase("places")){
done = true;
}
break;
}
event_type = parser.next();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
//Return the Episode Array
return bakeries;
}
}
Как видите, я хорошо разбираю lat и lon, но опять же, поскольку я получаю все это как строки, у меня возникают проблемы с преобразованием его в int и передачей его классу OverlayItems. Я надеюсь, что я не делаю это слишком сложным.