Googleマップを使用してタクシーのようなアプリを開発しています。ピックアップとドロップの場所があり、ボタン(GO)をクリックするとそれらの間のルートが描画されます。 This is my activityAndroid GoogleマップのポリラインがRAMをクリアせずに描画されない
私は共有設定で最後に知られている場所を保存しています。アプリをもう一度開くと、最後の既知の場所がピックアップ場所になります。私は再びアプリを開くと、
the route is not getting drawnが、ルートデータムは、Googleからダウンロードされる:
私の問題はです。 LatLngデータもnullではありません。
しかし、私は自分の携帯電話のラムを解放し、私のアプリを開くと、非常に驚くべきことには、は、ALAS ITワークス!!!!
物事私がこれまで行ってきた:
1.Iはゴミにしようとしたが(onDestroy()で、ルートを描画する前に、ルート、最初に描画した後)を収集.ITはしませんでした作業。
2.私はアプリケーションキャッシュをクリアしようとしましたが、共有環境設定で保存した最後の場所を含むすべてのアプリケーションデータが削除されました。アプリケーションは毎回最初から起動します(i、毎回など。)
3.私の共有しているprefを除くすべてのデータを削除しようとしましたが、成功しませんでした。
Goボタンをクリックしたときにルートデータをダウンロードした後に呼び出されるコードです。
public void processFinish(List<List<HashMap<String, String>>> result) {
Log.d("sri","processFinish in Map_Activity");
Route_Extras.getting_json = false;
ArrayList<LatLng> points = null;
PolylineOptions polylineOptions = null;
MarkerOptions markerOptions = new MarkerOptions();
if(result != null) {
if(result.size()<1){
Toast.makeText(getBaseContext(), "No Points",Toast.LENGTH_SHORT).show();
return;
}
//iterating routes
for (int i = 0; i < result.size(); i++) {
Log.d("sri", "Iterating routes " + distance);
points = new ArrayList<LatLng>();
polylineOptions = new PolylineOptions();
//getting the individual route
List<HashMap<String, String>> path = result.get(i);
Log.d("sri", "Iterating every points in legs and steps " + distance);
// Fetching all the points in i-th route
for (int j = 0; j < path.size(); j++) {
HashMap<String, String> point = path.get(j);
if (j == 0) { // Get distance from the list
distance = (String) point.get("distance");
Log.d("sri", "Iterating leg " + j + "" + "distance is " + distance);
// dist += Double.valueOf(distance);
continue;
}
else if (j == 1) { // Get duration from the list
duration = (String) point.get("duration");
Log.d("sri", "Iterating leg " + j + "" + "duration is " + duration);
// dur += Double.valueOf(duration);
continue;
}
double lat = Double.parseDouble(point.get("lat"));
double lng = Double.parseDouble(point.get("lng"));
LatLng position = new LatLng(lat, lng);
points.add(position);
}//path -->leg
// Adding all the points in the route to LineOptions
Log.d("sri", "Adding all the points in the route to LineOptions");
polylineOptions.addAll(points);
polylineOptions.width(6);
polylineOptions.color(Color.BLUE);
}//route
Log.d("sri", "Drawing polyline in the Google Map ");
// Drawing polyline in the Google Map for the i-th route
if(polylineOptions!=null){
pline = mGoogleMap.addPolyline(polylineOptions);
if(pline != null){
Log.d("sri", "if(pline!=null)");
}
Log.d("sri", "if(polylineOptions!=null)");
}
else{
Log.d("sri", "if(polylineOptions == null)");
}
}
}//process
私は最後の10日以来、この問題に直面し、それを少なくとも100回をGoogleで検索し、解決策を見つけていないので、SOOでそれを掲示しています。
感謝をsukumar.But残念ながら、そのどれでも他の提案を!!動作していませんか? – adi
私もキャブタイプのアプリで働いています。このコードは私のために働きます。 – sukumar