我基本上想知道如何计算并将标记旋转到另一个位置点(Lat& Lng)。
这是使用适用于Android的Google Maps API v2。
答案 0 :(得分:1)
为标记使用自定义位图,并在创建位图描述符并显示标记之前使用矩阵进行旋转。
的值为90,270,但类似的东西应该对你有效。
Matrix matrix = new Matrix();
matrix.postRotate(orientation); // anti-clockwise
Bitmap rotatedBitmap = Bitmap.createBitmap(bm, 0, 0,
bm.getWidth(), bm.getHeight(), matrix, true);
bm = rotatedBitmap.copy(rotatedBitmap.getConfig(), true);
BitmapDescriptor bd = BitmapDescriptorFactory.fromBitmap(bm);
markeroptions.icon(bd);
这是来自github上的google map utils
https://github.com/googlemaps/android-maps-utils
/**
* Returns the heading from one LatLng to another LatLng. Headings are
* expressed in degrees clockwise from North within the range [-180,180).
* @return The heading in degrees clockwise from north.
*/
public static double computeHeading(LatLng from, LatLng to) {
// http://williams.best.vwh.net/avform.htm#Crs
double fromLat = toRadians(from.latitude);
double fromLng = toRadians(from.longitude);
double toLat = toRadians(to.latitude);
double toLng = toRadians(to.longitude);
double dLng = toLng - fromLng;
double heading = atan2(
sin(dLng) * cos(toLat),
cos(fromLat) * sin(toLat) - sin(fromLat) * cos(toLat) * cos(dLng));
return wrap(toDegrees(heading), -180, 180);
}