私は、Google マップを使用し、マップ上のポイント A から B へのルート パスを描画する Android アプリケーションを開発しました。この投稿に記載されている方法を使用しましたが、すべて正常に機能していました。ここ数日、エミュレーターと携帯電話で結果をテストしましたが、ルート パスが正常に描画されました。
しかし、コードの文字通り何も変更せずに、今日、ルート パスの描画が失敗し、アプリがクラッシュすることに気付きました。想定どおり、次のコードを使用して、KML ファイル生成用の uri リンクを「構築」します。
public static String getUrl(double fromLat, double fromLon, double toLat,
double toLon) {// connect to map web service
StringBuffer urlString = new StringBuffer();
urlString.append("http://maps.google.com/maps?f=d&hl=en");
urlString.append("&saddr=");// from
urlString.append(Double.toString(fromLat));
urlString.append(",");
urlString.append(Double.toString(fromLon));
urlString.append("&daddr=");// to
urlString.append(Double.toString(toLat));
urlString.append(",");
urlString.append(Double.toString(toLon));
urlString.append("&ie=UTF8&0&om=0&output=kml");
return urlString.toString();
}
この関数は、kml ファイルの" http://maps.google.com/maps?f=d&hl=en&saddr=35.5133804,24.0421933&daddr=35.511732,23.974715&ie=UTF8&0&om=0&output=kml " のような Uri を返します。しかし、実験した結果、上記とまったく同じ KML リンクを使用すると、SAX パーサーはGoogle マップの Web ページのソース コード全体を解析しようとすることに気付きました。アプリが動作しているときに、生成された kml ファイルをダウンロードし、ローカルで正常に解析しました。これは次の形式でした。
?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
...
</Document>
</kml>
対照的に、ダウンロードされたファイルは Google マップの Web ページ全体であり、次の形式になっています。
<!DOCTYPE html><html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="content-type"/>
<meta content="Find local businesses, view maps and get driving directions in
Google Maps" name="description"/> <link href="//maps.gstatic.com/favicon.ico"
rel="shortcut icon"/>
<noscript> <meta content="0; URL=/m/directions?dirflg=&saddr=35.5133804,24.0421933&daddr=35.511732,23.974715&
amp;hl=en&oi=nojs" http-equiv="refresh"/> </noscript> <title>
...
tick('ua');var id = 'none';if (event.target){id =
closestParentId(event.target);}else if (event.srcElement){
id = closestParentId(event.srcElement);}
var firstUserAction = event.type + '-' + id;
もちろん、これは私の PC からページを表示したときにルート パスを表示する文字通りの Google マップ Web ページ ソースです。だから私の質問は、誰かがこのように起こり始めた同じ非常に奇妙な問題を経験したかどうかです.
ありがとうございました!