如何通过距离矩阵API使用“ departure_time”作为参数将未来时间传递到HTTP请求中

时间:2019-02-09 16:31:12

标签: java android httprequest google-distancematrix-api

我正在使用distant matrix api来获取2点之间的旅行时间,并且我想在计算旅行时间时考虑交通情况,我在将距离URL作为请求的一部分传递时调用了距离矩阵:

let image_index = 0;
    Dropzone.autoDiscover = false;
    $(function () {
        let feedback_img_upload = new Dropzone('#image_upload', {
            paramName: "file",
            uploadMultiple: true,
            parallelUploads: 5,
            maxFilesize: 500,
            acceptedFiles: '.jpg, .png, .gif, .pdf, .jpeg',
            previewTemplate: document.getElementById('preview').innerHTML,
            addRemoveLinks: true,
            dictRemoveFile: 'Remove file',
            dictFileTooBig: 'Image is larger than 16MB',
            timeout: 10000,
            url: "/images-save",
            init: function () {
                this.on("removedfile", function (file) {
                    let inputObj = $.parseJSON(file['xhr'].response);

                    $.post({
                        url: '/images-delete',
                        data: {id: inputObj.image_name, _token: $('[name="_token"]').val()},
                        dataType: 'json',
                        success: function (data) {
                            if (file.xhr != undefined) {
                                let imgId = inputObj.file_name;
                                $('#inquiry_imgfile_' + imgId).remove();
                            }
                            return true;
                        }
                    });
                });
            },
        });

        feedback_img_upload.on("success", function (file, obj) {

            if (obj.status == 1) {
                image_index++;
                $('#inquiry_imgfile_main_div').append('<input class="inquiry_imgfile_upload" id="inquiry_imgfile_' + obj.file_name + '" name="inquiry_imgfile[]" value="" type="hidden"/>');
                $("#inquiry_imgfile_" + obj.file_name).val(obj.image_name);

            }
        });

    });
public function store(Request $request)
{
    try {
        $photos = $request->file('file');
        if (!is_array($photos)) {
            $photos = [$photos];
        }

        if (!is_dir($this->photos_path)) {
            mkdir($this->photos_path, 0777);
        }

        $img_names = [];
        for ($i = 0; $i < count($photos); $i++) {
            try{
                $photo = $photos[$i];
                $name = date('YmdHisu') . rand(1, 1000000) . $i;
                $file_name = $name . rand(1, 1000000);
                $resize_name = $file_name . '.' . $photo->getClientOriginalExtension();
                $img_names[] = $resize_name;
                $photo->move($this->photos_path, $resize_name);
                $this->save();
                $img = Image::make($photo);
                $img->text(' Mysale.lk', 200, 200, function ($font) {
                    $font->file(public_path('app/OpenSans-Light.ttf'));
                    $font->size(50);
                    $font->color('#fdf6e3');
                    $font->align('center');
                    $font->valign('top');
                });

                $img->save($this->photos_path . '/' . $resize_name);

                return Response::json([
                    'image_name' => $resize_name,
                    "status" => 1,
                    "file_name" => $file_name
                ], 200);
                exit();
            }catch (\Exception $ex){
                dd($ex);
            }

        }

    } catch (\Exception $e) {
        return Response::json([
            "status" => 0
        ], 401);
        exit();
    }


}

根据文档,在我的请求中添加starts_time参数将在考虑交通情况的同时添加旅行时间数据(在上面的URL中,我在发送请求时使用了该参数)。

我想在以后用离开_时间参数
传递一些时间
阅读文档后,看来我需要以int / long传递时间(例如,离开_时间= 1399995076)。

例如,这是某个时间= 21:15在星期五说。

如何将这段时间或任何时间转换为int / long?

我看过this answer,还有更多与此主题相关的内容,但没有一个对我有帮助。

1 个答案:

答案 0 :(得分:1)

出发时间需要以毫秒为单位的时间,要获取当前时间以毫秒为单位,您需要使用System.currentTimeMillis()。 如果您将来需要时间,请添加以毫秒为单位的小时数,例如,将来1小时的小时数是3600000毫秒,因此请使用System.currentTimeMillis() + 3600000

因此,在您的代码中它将如下所示:

Long future_time = System.currentTimeMillis() + 3600000;
"https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&" +
                        "origins=" + startLat +"," + startlong  +
                        "&destinations=" + endLat +","+endLong +
                        //departure_time parameter
                        "&departure_time=" + future_time +
                        "&key=my api key");