使用谷歌地图路由

时间:2018-04-30 08:57:14

标签: android google-maps routing

   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);
        }

我的代码很少有时间正确路由。但几个小时后,它只会路由,路由预先路由,否则会显示以下错误:

  

{“error_message”:“此API项目无权使用此项目   API。“,”routes“:[],”status“:”REQUEST_DENIED“}

2 个答案:

答案 0 :(得分:0)

您提供给网址的API密钥 https://maps.googleapis.com/maps/api/directions/json?origin="+o+"&destination="+d+"&key="+key+"&mode="+mode尚未启用以使用Google的Navigation API。按照此link启用它。

答案 1 :(得分:0)

我希望您已经找到了解决方案,但作为访问此网站的任何人的参考,我遇到了同样的错误,我在 GCP 中的项目下启用了 Google Directions API 并将其设置为结算帐户并解决了。

>