动画或移动标记以及谷歌地图上的路线路径
Animate or Move marker along with rout path on GoogleMap
我第一次使用 google 地图,我陷入了非常危急的境地。
实际上我想将标记与多边形线(绘制的溃败)一起制作动画,在这方面我已经尝试了很多代码但没有一种方法会被触发。
我使用的方法是我第一次绘制溃败 b/w 骑手和用户目的地,在 Ward 之后,随着骑手的经纬度发生变化,我将他的经纬度推向 firebase。同时,我正在获取地图中骑手到用户端的更新,然后是溃败。
为了您更好地理解,这是我的代码。
这是我绘制路径的方式 b/w 骑手和用户...
public void pathDraw(String startLat,String startLon,String endLat,String endLon,int orginDrawable, int desTinationDrawable){
LatLng origin = new LatLng(Double.parseDouble(startLat), Double.parseDouble(startLon));
LatLng destination = new LatLng(Double.parseDouble(endLat), Double.parseDouble(endLon));
DrawRouteMaps.getInstance(this)
.draw(origin, destination, mGoogleMap);
DrawMarker.getInstance(this).draw(mGoogleMap, origin,orginDrawable, "Origin Location");
DrawMarker.getInstance(this).draw(mGoogleMap, destination, desTinationDrawable, "Destination Location");
LatLngBounds bounds = new LatLngBounds.Builder()
.include(origin)
.include(destination).build();
Point displaySize = new Point();
getWindowManager().getDefaultDisplay().getSize(displaySize);
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, displaySize.x, 1000, 15));
}
这是每次经纬度更新时调用的 Firebase 方法。
public void mapChangeAnimation(final boolean user){
mDatebaseTracking.keepSynced(true);
DatabaseReference query = mDatebaseTracking.child(order_id);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
rider_lat = ""+dataSnapshot.child("rider_lat").getValue();
rider_long = ""+dataSnapshot.child("rider_long").getValue();
String latlong = rider_lat + " "+ rider_long;
if(!user) {
LatLng latLngBegin = new LatLng(Double.parseDouble(rider_lat),Double.parseDouble(rider_long));
LatLng latLngEnd = new LatLng(Double.parseDouble(rest_lat),Double.parseDouble(rest_long));
}
else {
LatLng latLngBegin = new LatLng(Double.parseDouble(rider_lat),Double.parseDouble(rider_long));
LatLng latLngEnd = new LatLng(Double.parseDouble(user_lat),Double.parseDouble(user_long));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
您的建议将不胜感激。另外,如果你请 post 根据我的情况提供代码。
提前致谢
要沿着从起点到终点的路线路径设置标记动画,您可以参考此代码。
https://gist.github.com/broady/6314689
如果您想要更轻松地实施,您可以使用可用的库来执行相同的操作。
这些库没有确切的实现,您可能需要稍微调整一下。
我第一次使用 google 地图,我陷入了非常危急的境地。 实际上我想将标记与多边形线(绘制的溃败)一起制作动画,在这方面我已经尝试了很多代码但没有一种方法会被触发。
我使用的方法是我第一次绘制溃败 b/w 骑手和用户目的地,在 Ward 之后,随着骑手的经纬度发生变化,我将他的经纬度推向 firebase。同时,我正在获取地图中骑手到用户端的更新,然后是溃败。
为了您更好地理解,这是我的代码。
这是我绘制路径的方式 b/w 骑手和用户...
public void pathDraw(String startLat,String startLon,String endLat,String endLon,int orginDrawable, int desTinationDrawable){
LatLng origin = new LatLng(Double.parseDouble(startLat), Double.parseDouble(startLon));
LatLng destination = new LatLng(Double.parseDouble(endLat), Double.parseDouble(endLon));
DrawRouteMaps.getInstance(this)
.draw(origin, destination, mGoogleMap);
DrawMarker.getInstance(this).draw(mGoogleMap, origin,orginDrawable, "Origin Location");
DrawMarker.getInstance(this).draw(mGoogleMap, destination, desTinationDrawable, "Destination Location");
LatLngBounds bounds = new LatLngBounds.Builder()
.include(origin)
.include(destination).build();
Point displaySize = new Point();
getWindowManager().getDefaultDisplay().getSize(displaySize);
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, displaySize.x, 1000, 15));
}
这是每次经纬度更新时调用的 Firebase 方法。
public void mapChangeAnimation(final boolean user){
mDatebaseTracking.keepSynced(true);
DatabaseReference query = mDatebaseTracking.child(order_id);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
rider_lat = ""+dataSnapshot.child("rider_lat").getValue();
rider_long = ""+dataSnapshot.child("rider_long").getValue();
String latlong = rider_lat + " "+ rider_long;
if(!user) {
LatLng latLngBegin = new LatLng(Double.parseDouble(rider_lat),Double.parseDouble(rider_long));
LatLng latLngEnd = new LatLng(Double.parseDouble(rest_lat),Double.parseDouble(rest_long));
}
else {
LatLng latLngBegin = new LatLng(Double.parseDouble(rider_lat),Double.parseDouble(rider_long));
LatLng latLngEnd = new LatLng(Double.parseDouble(user_lat),Double.parseDouble(user_long));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
您的建议将不胜感激。另外,如果你请 post 根据我的情况提供代码。 提前致谢
要沿着从起点到终点的路线路径设置标记动画,您可以参考此代码。
https://gist.github.com/broady/6314689
如果您想要更轻松地实施,您可以使用可用的库来执行相同的操作。
这些库没有确切的实现,您可能需要稍微调整一下。