gpt4 book ai didi

java - 尝试从手机获取 KML 节点值时获取空值,但在 Android 模拟器上则不行

转载 作者:行者123 更新时间:2023-12-01 15:19:10 25 4
gpt4 key购买 nike

我目前正在设计一个需要在 MapView 上绘制路线的应用程序。为了使其正常工作,我需要从我获得的 KML 文档中获取数据:

http://maps.google.com/maps?f=d&hl=en&saddr=-33.882993,18.63486&daddr=-33.870162,18.657837&ie=UTF8&0&om=0&output=kml

我创建了一个测试项目以确保正确接收此数据。问题是它在我的模拟器上运行得很好,但在实际的 Android 手机上却运行不好。

以下代码段在单击按钮时启动一个线程,获取输入流响应 (KML)。

public void onClick(View v) {
if (v.getId()== R.id.btn1)
{
new Thread() {
@Override
public void run() {
String url = "http://maps.google.com/maps?f=d&hl=en&saddr=-33.882993,18.63486&daddr=-33.870162,18.657837&ie=UTF8&0&om=0&output=kml";
InputStream is = getConnection(url);

mRoad = RouteProvider.getRoute(is);
mHandler.sendEmptyMessage(0);
}
}.start();
}

}

private InputStream getConnection(String url) {
InputStream is = null;
try {
HttpURLConnection conn = (HttpURLConnection)new URL(url).openConnection();
conn.connect();
is = conn.getInputStream();
conn = null;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return is;
}

目前,getRoute() 需要做的就是给出 KML 文档中“LineString”元素的内容。这些内容是可用于绘制路线的坐标列表。

public class RouteProvider {
/** Gets data from KML response **/
public static Road getRoute(InputStream is) {
Road road = new Road();

try
{
Document xmlDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is);
NodeList a = xmlDoc.getElementsByTagName("LineString");
System.out.println(a.item(0).getTextContent());
road.mName = a.item(0).getTextContent();


} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}


return road;
}

在我运行的模拟器上,正确的值显示在 road.mName 中,它是一个坐标列表。在 Android 手机上它显示 null?

我正在 eclipse 上构建 Android 2.3.3,并使用 Samsung Galaxy S2 进行测试。

最佳答案

毕竟不需要使用 KML。只是使用谷歌地图提供 xml 格式。容易多了。 https://developers.google.com/maps/documentation/directions/

关于java - 尝试从手机获取 KML 节点值时获取空值,但在 Android 模拟器上则不行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11207118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com