I have a file with about 1700 markers that I am trying to load onto a gmap v2. On my galaxy nexus running 4.2.2 it loads no problem, but some folks with 4.0.x and 4.1.x are not having the same results. They get the map, but no points or the app crashes after about 30 seconds. I am loading a local file...
Here is my method:
public void BuildMap() {
FileInputStream fXmlFile;
markerInfo = new HashMap<Marker, MapMarkers>();
try {
fXmlFile = new FileInputStream(
"/storage/emulated/0/snoteldata/kml/snotelwithlabels.kml");
XmlDom xml = new XmlDom(fXmlFile);
List<XmlDom> locations = xml.tags("Placemark");
String Name, Description, Lat, Lon;
markerInfo = new HashMap<Marker, MapMarkers>();
for (XmlDom location : locations) {
MapMarkers marks = new MapMarkers();
Name = location.tag("name").text();
Description = location.tag("description").text();
Lat = location.tag("latitude").text();
Lon = location.tag("longitude").text();
la = Float.parseFloat(Lat);
lo = Float.parseFloat(Lon);
marks.setTitle(Name);
marks.setDesc(Description);
Marker m = map.addMarker(new MarkerOptions()
.position(new LatLng(la, lo))
.title(marks.getTitle())
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.snotel_marker)));
markerInfo.put(m, marks);
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
MapMarkers markInfo = markerInfo.get(marker);
Intent i = new Intent(MainActivity.this,
MarkerInformation.class);
i.putExtra("name", markInfo.getTitle()).putExtra(
"description", markInfo.getDesc());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
});
}
} catch (SAXException e) {
// TODO Auto-generated catch block
Log.e("SAXException", e.getMessage());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Log.e("FileNotFoundException", e.getMessage());
}
}
I have tried putting this in a AsyncTask, but get the Not on Main Thread error each time... so I am not sure how to run it in the background to keep it loading for folks until the parsing has completely happened.
Why does this show for my Gnex and a Nexus 7 tablet, but not for 4.0.x etc??? How can I figure out where the issue is on others devices?