¿Cómo obtener Latitud Longitud de más de 500 direcciones?

Tengo más de 700 direcciones en la base de datos. Quiero trazarlos por regiones. He implementado este código:

public LatLng getSingleLocationFromAddress(String strAddress)
{
    Geocoder coder = new Geocoder(this, Locale.getDefault());
    List<Address> address = null;
    Address location = null;
    GeoPoint p1 = null;
    LatLng temp = null;//new LatLng(26.0000, 121.0000);
    String strAddresNew = strAddress.replace(",", " ");
    try
    {
        address = coder.getFromLocationName(strAddresNew, 1);
        if (!address.isEmpty())
        {
            location = address.get(0);
            location.getLatitude();
            location.getLongitude();
            temp = new LatLng(location.getLatitude(), location.getLongitude());
            Log.d("Latlng : ", temp + "");
        } else
        {
            arrTemp.add(strAddress);
            System.out.println(arrTemp);
        }
    } catch (IOException e)
    {
        Toast.makeText(mContext, e.toString(), Toast.LENGTH_LONG).show();
        e.printStackTrace();
    } catch (Exception e)
    {
        e.printStackTrace();
    }
    return temp;
}

Pero el problema es cuando llamo a este método en bucle como este:

Marker TP1 = googleMap.addMarker(new MarkerOptions().position(getSingleLocationFromAddress(fullAddress)));

La líneacoder.getFromLocationName(strAddresNew, 1); devuelve nulo para algunas direcciones, por ejemplo, si tengo unArrayList de 7 direcciones, entonces obtengo solo 4-5 valores LatLong.

Respuestas a la pregunta(1)

Su respuesta a la pregunta