Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将路线上的对象从起点移动到终点_Android_Google Maps - Fatal编程技术网

Android 如何将路线上的对象从起点移动到终点

Android 如何将路线上的对象从起点移动到终点,android,google-maps,Android,Google Maps,请告诉我,我是否使用了当时看到的许多答案的当前位置。但我的位置来源于服务,这是主要问题。服务后,我会得到所有的起点和终点。现在,如何设置从起点到终点的动画?我已经完成了0索引到1索引的动画移动,但其余的我没有。现在我需要帮助来解决这个问题。 我有一个位置,我从我的服务,我在谷歌地图创建路线图。但现在我想显示一个移动的标记或车辆,并通过起点到终点设置动画 如何从起点到终点实现动画?这是 我的方法和我用一个 多段线 private void setMapMarker(谷歌地图谷歌地图){ goog

请告诉我,我是否使用了当时看到的许多答案的当前位置。但我的位置来源于服务,这是主要问题。服务后,我会得到所有的起点和终点。现在,如何设置从起点到终点的动画?我已经完成了0索引到1索引的动画移动,但其余的我没有。现在我需要帮助来解决这个问题。

我有一个位置,我从我的服务,我在谷歌地图创建路线图。但现在我想显示一个移动的标记或车辆,并通过起点到终点设置动画

如何从起点到终点实现动画?这是 我的方法和我用一个 多段线

private void setMapMarker(谷歌地图谷歌地图){
googleMap.clear();
初始化(Objects.requirennull(getActivity()).getApplicationContext());
api=ApiClient.getClient().create(apinterface.class);
LocationInfo LocationInfo=新的LocationInfo();
locationInfo.setMOV_DATE(fromDate.getText().toString());
locationInfo.SetEmployee_ID(员工ID);
locationInfo.setSTART_TIME(fromTime.getText().toString());
locationInfo.setEND_TIME(toTime.getText().toString());
Call listCall=api.getLocation(locationInfo);
APIHelper.enqueueWithRetry(listCall,new Callback(){
@凌驾
公共void onResponse(调用、响应){
试一试{
if(response.issusccessful()){
List=response.body();
Map Map=getEmployeeList(列表);
if(list==null | | list.isEmpty()| | list.equals(0)){
googleMap.clear();
Toast.makeText(getActivity(),“找不到数据”,Toast.LENGTH_SHORT.show();
}否则{
对于(Map.Entry:Map.entrySet()){
字符串employee=entry.getKey();
List list1=map.get(员工);
如果(list1.size()>0){
List latlng=new ArrayList();
对于(int i=0;i

已经显示了路线图。

首先,我想说的是,您的问题应该更清楚

重要的是要知道您是否希望在车辆行驶时设置标记。我将假设这是您想要做的,我将根据这一点提供答案


您已经有了设置标记的方法->
setMapMarker

您现在需要做的就是每隔一秒左右调用此方法。
您可以使用线程来完成此操作,如下所示:

//Declare Thread
Thread thread;

void startSetMarker() {
    thread = new Thread() {
        @Override
        public void run() {
            try {
                while (!thread.isInterrupted()) {
                    Thread.sleep(1000);
                    runOnUiThread(new Runnable() {
                        @Override
                            public void run() {
                                //Call setMapMarker here
                            }
                        });
                    }
                } catch (InterruptedException e) {
            }
        }
    };
    thread.start();
}

//You can cancel the thread like this:

void cancelThread(){
    thread.interrupt();
}
这样,标记将每秒更新一次


当您想要开始设置标记时,您可以调用
startMarker();
当用户到达最终目标时,您可以通过调用
cancelThread()取消线程

我假设您想在车辆移动时移动标记?要做到这一点,您必须每秒左右获取一次lat/long,然后相应地更新标记。如果您想在车辆不移动的情况下为其设置动画,您需要获取起点和终点之间的lat/long位置,并将标记移动到该点。我已经获得了route和marker。但是我想在我的路线上显示一些动画。我更新的代码再次看到。谢谢你想在汽车行驶时显示动画吗?我有起点和终点。我还指示路线。但是我想显示一些东西,这些东西从起点到终点,就像汽车移动一样。看看我的第一条评论。非常感谢。首先,我很感谢你的回答。但是当我的服务时间很长的时候,我该怎么办呢?
//Declare Thread
Thread thread;

void startSetMarker() {
    thread = new Thread() {
        @Override
        public void run() {
            try {
                while (!thread.isInterrupted()) {
                    Thread.sleep(1000);
                    runOnUiThread(new Runnable() {
                        @Override
                            public void run() {
                                //Call setMapMarker here
                            }
                        });
                    }
                } catch (InterruptedException e) {
            }
        }
    };
    thread.start();
}

//You can cancel the thread like this:

void cancelThread(){
    thread.interrupt();
}