话不多说,直接上代码。
/** * 计算两点之间等距的经纬度 */ private List<LatLng> getDengLatLng(int number) { double aaa, bbb, ccc = 0, ddd = 0; List<LatLng> latLngs = new ArrayList<>(); for (int i = 1; i < number + 1; i++) { if (latLng_a.longitude > latLng_b.longitude && latLng_a.latitude > latLng_b.latitude) { aaa = (latLng_a.longitude - latLng_b.longitude) / (number + 1); ccc = latLng_b.longitude + aaa * (i); bbb = (latLng_a.latitude - latLng_b.latitude) / (number + 1); ddd = bbb * (i) + latLng_b.latitude; Log.e(TAG, "getLatLng:a " + ddd + " " +ccc); } else if (latLng_a.longitude < latLng_b.longitude && latLng_a.latitude < latLng_b.latitude) { aaa = (latLng_b.longitude - latLng_a.longitude) / (number + 1); ccc = latLng_a.longitude + aaa * (i); bbb = (latLng_b.latitude - latLng_a.latitude) / (number + 1); ddd = latLng_a.latitude + bbb * i; Log.e(TAG, "getLatLng:b " + ddd + " " +ccc); } else if (latLng_a.longitude > latLng_b.longitude && latLng_a.latitude < latLng_b.latitude) { aaa = (latLng_a.longitude - latLng_b.longitude) / (number + 1); ccc = latLng_b.longitude + aaa * (number+1-i); bbb = (latLng_b.latitude - latLng_a.latitude) / (number + 1); ddd = latLng_a.latitude + bbb * i; Log.e(TAG, "getLatLng:c " + ddd + " " +ccc); } else if (latLng_a.longitude < latLng_b.longitude && latLng_a.latitude > latLng_b.latitude) { aaa = (latLng_b.longitude - latLng_a.longitude) / (number + 1); ccc = latLng_a.longitude + aaa * (i); bbb = (latLng_a.latitude - latLng_b.latitude) / (number + 1); ddd = latLng_a.latitude - bbb * i; Log.e(TAG, "getLatLng:d " + ddd + " " +ccc); } latLngs.add(new LatLng(ddd, ccc)); } return latLngs; }