위도와 경도를 얻는 데 도움이 필요합니다. 내 말은 : 나는 XMLPullParser를 사용하여 웹에서 위도와 경도를 파싱했다. 이제 가장 큰 문제는 모든 값 (위도와 경도)을 가져 와서지도에 그려 보는 것입니다. 도와주세요!지도에 동적으로 Android 오버레이 표시
여기 내 파서 클래스의 :
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;
}
}
내가, 내가 INT로 변환 문제를 데 문자열로 모든 것을 얻고 이후, 나는 다시하지만, 좋아, 위도와 경도를 분석하고있다시피 그런 다음이를 OverlayItems 클래스에 제공하십시오. 나는 이것을 너무 복잡하게하지 않기를 바란다.
안녕하세요! 나는 그것이 잠시 였음을 안다. 그러나 나는 여전히 @CornFlakesDK에 대한 빠른 질문을 가지고있다. myList.size가 무엇입니까? Foo는 위도와 경도를 얻는 클래스라고 생각합니까? 이 빌어 먹을 질문에 대해 미안하지만 알 필요가 있습니다. – ito
후속 질문이있는 경우 새로운 질문을 답안에 편집하는 대신 새로운 질문을 게시하는 것이 좋습니다. 더 많은 사람들이 당신의 질문을 그런 식으로보고 대답하려고 노력할 것입니다. – sth