public
class
MainActivity
extends
Activity {
private
GoogleMap mMap;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
String serviceUrl;
String serviceKey;
String strUrl;
serviceKey=
""
;
serviceKey = URLEncoder.encode(serviceKey);
String type =
""
;
strUrl=serviceUrl+
"?ServiceKey="
+serviceKey+
"&type="
+type;
new
DownloadWebpageTask().execute(strUrl);
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected(MenuItem item) {
int
id = item.getItemId();
if
(id == R.id.action_settings) {
return
true
;
}
return
super
.onOptionsItemSelected(item);
}
private
class
DownloadWebpageTask
extends
AsyncTask<String,Void,String> {
@Override
protected
String doInBackground(String... urls) {
try
{
return
(String) downloadUrl((String) urls[
0
]);
}
catch
(IOException e) {
return
"다운로드실패"
;
}
}
protected
void
onPostExecute(String result)
{
displayhupos(result);
}
private
String downloadUrl(String myurl)
throws
IOException {
HttpURLConnection conn =
null
;
try
{
URL url =
new
URL(myurl);
conn = (HttpURLConnection) url.openConnection();
BufferedInputStream buf =
new
BufferedInputStream(conn.getInputStream());
BufferedReader bufreader =
new
BufferedReader(
new
InputStreamReader(buf,
"utf-8"
));
String line =
null
;
String page =
""
;
while
((line = bufreader.readLine()) !=
null
)
page += line;
return
page;
}
finally
{
conn.disconnect();
}
}
private
void
displayhupos(String result) {
String unitCode =
""
;
String unitName =
""
;
String routeNo =
""
;
String routeName =
""
;
String xValue =
""
;
String yValue =
""
;
boolean
bSet_unitNama =
false
;
boolean
bSet_unitCode =
false
;
boolean
bSet_routeNo =
false
;
boolean
bSet_routeName =
false
;
boolean
bSet_xValue =
false
;
boolean
bSet_yValue =
false
;
try
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(
true
);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(
new
StringReader(result));
int
eventType = xpp.getEventType();
while
(eventType != XmlPullParser.END_DOCUMENT) {
if
(eventType == XmlPullParser.START_DOCUMENT) {
;
}
else
if
(eventType == XmlPullParser.START_TAG) {
String tag_name = xpp.getName();
if
(tag_name.equals(
"uniCode"
))
bSet_unitCode =
true
;
if
(tag_name.equals(
"unitName"
))
bSet_unitNama =
true
;
if
(tag_name.equals(
"routeNo"
))
bSet_routeNo =
true
;
if
(tag_name.equals(
"routeName"
))
bSet_routeName =
true
;
if
(tag_name.equals(
"xValue"
))
bSet_xValue =
true
;
if
(tag_name.equals(
"yValue"
))
bSet_yValue =
true
;
}
else
if
(eventType == XmlPullParser.TEXT) {
if
(bSet_unitCode) {
unitCode = xpp.getText();
bSet_unitCode =
false
;
}
if
(bSet_unitNama) {
unitName = xpp.getText();
bSet_unitNama =
false
;
}
if
(bSet_routeNo) {
routeNo = xpp.getText();
bSet_routeNo =
false
;
}
if
(bSet_routeName) {
routeName = xpp.getText();
bSet_routeName =
false
;
}
if
(bSet_xValue) {
xValue = xpp.getText();
bSet_xValue =
false
;
}
if
(bSet_yValue) {
yValue = xpp.getText();
bSet_yValue =
false
;
displayMap(xValue, yValue,unitName ,routeName);
}
}
else
if
(eventType == XmlPullParser.END_TAG) {
;
}
eventType = xpp.next();
}
}
catch
(Exception e) {
;
}
}
private
void
displayMap(String xValue,String yValue,String unitName,String routeName)
{
double
latitude = Double.parseDouble(xValue);
double
longitude = Double.parseDouble(yValue);
final
LatLng LOC =
new
LatLng(latitude,longitude);
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(LOC,
5
));
Marker mk = mMap.addMarker(
new
MarkerOptions()
.position(LOC).
icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))
.title(unitName)
.snippet(routeName));
mk.showInfoWindow();
}
}
}