Android 使用谷歌地图路由 public void获取方向(Activity\u Activity,GoogleMap\u GoogleMap, LatLng起点、LatLng终点、TextView txt距离、TextView txt持续时间、字符串模式) { 活动=_活动; 谷歌地图=_谷歌地图; 起源=_起源; 目的地=_目的地; txt\U distanc=\U txt\U distanc; txt_持续时间=_txt_持续时间; 字符串o,d,键; o=原点。纬度+“,”+原点。经度; d=目的地。纬度+“,”+目的地。经度; 键=“***”; 最终字符串url=”https://maps.googleapis.com/maps/api/directions/json?origin=“+o+”&destination=“+d+”&key=“+key+”&mode=“+mode; final StringRequest StringRequest=新StringRequest(Request.Method.POST,url, 新的Response.Listener(){ @凌驾 公共void onResponse(字符串响应){ Log.i(“onResponse:”,url); Log.i(“onResponse:,response”); 绘制路径(响应); 获取distans(响应); } },new Response.ErrorListener(){ @凌驾 公共无效onErrorResponse(截击错误){ Log.i(“onResponse:”,url); Log.i(“截击错误:,错误.toString()); } } ) { @凌驾 受保护的映射getParams()引发AuthFailureError{ Map Map=newhashtable(); map.put(“name”,Base64.encodeToString(String.valueOf(“”).getBytes() ,Base64.DEFAULT)); 返回图; } }; RequestQueue RequestQueue=Volley.newRequestQueue(活动); 添加(stringRequest); }

Android 使用谷歌地图路由 public void获取方向(Activity\u Activity,GoogleMap\u GoogleMap, LatLng起点、LatLng终点、TextView txt距离、TextView txt持续时间、字符串模式) { 活动=_活动; 谷歌地图=_谷歌地图; 起源=_起源; 目的地=_目的地; txt\U distanc=\U txt\U distanc; txt_持续时间=_txt_持续时间; 字符串o,d,键; o=原点。纬度+“,”+原点。经度; d=目的地。纬度+“,”+目的地。经度; 键=“***”; 最终字符串url=”https://maps.googleapis.com/maps/api/directions/json?origin=“+o+”&destination=“+d+”&key=“+key+”&mode=“+mode; final StringRequest StringRequest=新StringRequest(Request.Method.POST,url, 新的Response.Listener(){ @凌驾 公共void onResponse(字符串响应){ Log.i(“onResponse:”,url); Log.i(“onResponse:,response”); 绘制路径(响应); 获取distans(响应); } },new Response.ErrorListener(){ @凌驾 公共无效onErrorResponse(截击错误){ Log.i(“onResponse:”,url); Log.i(“截击错误:,错误.toString()); } } ) { @凌驾 受保护的映射getParams()引发AuthFailureError{ Map Map=newhashtable(); map.put(“name”,Base64.encodeToString(String.valueOf(“”).getBytes() ,Base64.DEFAULT)); 返回图; } }; RequestQueue RequestQueue=Volley.newRequestQueue(活动); 添加(stringRequest); },android,google-maps,routing,Android,Google Maps,Routing,我的代码几乎没有正确的时间路由。但几个小时后,它只路由一次,否则显示以下错误: {“error_message”:“此API项目无权使用此 API.,“路由”:[],“状态”:“请求被拒绝”} 您为url提供的API密钥 https://maps.googleapis.com/maps/api/directions/json?origin=“+o+”&destination=“+d+”&key=“+key+”&mode=“+模式尚未启用,无法使用谷歌的导航API。按照此操作启用它。我希望您已经找

我的代码几乎没有正确的时间路由。但几个小时后,它只路由一次,否则显示以下错误:

{“error_message”:“此API项目无权使用此 API.,“路由”:[],“状态”:“请求被拒绝”}


您为url提供的API密钥
https://maps.googleapis.com/maps/api/directions/json?origin=“+o+”&destination=“+d+”&key=“+key+”&mode=“+模式
尚未启用,无法使用谷歌的导航API。按照此操作启用它。

我希望您已经找到了解决方案,但为了供访问该解决方案的任何人参考,我遇到了相同的错误,我在GCP中的项目下启用了Google Directions API,并将其设为一个计费帐户,然后问题得到了解决。

我启用了
Google Directions API
,但得到了相同的错误。您必须使用API密钥来验证Google Maps平台API的每个请求。
   public void get_direction(Activity _activity, GoogleMap _googleMap,
                                 LatLng _origin,LatLng _destination,TextView _txt_distanc,TextView _txt_duration,String mode)
        {
            activity=_activity;
            googleMap=_googleMap;
            origin=_origin;
            destination=_destination;
            txt_distanc=_txt_distanc;
            txt_duration=_txt_duration;

            String o,d,key;
            o=origin.latitude+","+origin.longitude;
            d=destination.latitude+","+destination.longitude;

            key="***";

            final String url = "https://maps.googleapis.com/maps/api/directions/json?origin="+o+"&destination="+d+"&key="+key+"&mode="+mode;
            final StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                               Log.i("onResponse: ",url );

                            Log.i("onResponse: ",response );

                            draw_path(response );
                            get_distans(response);

                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    Log.i("onResponse: ",url );

                    Log.i("VolleyError: ",error.toString() );

                }
            }
            )
            {
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String,String> map =new Hashtable<String,String>();

                    map.put("name", Base64.encodeToString(String.valueOf("").getBytes()
                            , Base64.DEFAULT));

                    return map;
                }
            };

            RequestQueue requestQueue = Volley.newRequestQueue(activity);
            requestQueue.add(stringRequest);
        }