@googlemaps/routing 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -2
  3. package/build/protos/google/maps/routing/v2/fallback_info.proto +0 -1
  4. package/build/protos/google/maps/routing/v2/geocoding_results.proto +0 -1
  5. package/build/protos/google/maps/routing/v2/localized_time.proto +0 -1
  6. package/build/protos/google/maps/routing/v2/location.proto +0 -1
  7. package/build/protos/google/maps/routing/v2/maneuver.proto +0 -1
  8. package/build/protos/google/maps/routing/v2/navigation_instruction.proto +0 -1
  9. package/build/protos/google/maps/routing/v2/polyline.proto +0 -1
  10. package/build/protos/google/maps/routing/v2/polyline_details.proto +84 -0
  11. package/build/protos/google/maps/routing/v2/route.proto +20 -13
  12. package/build/protos/google/maps/routing/v2/route_label.proto +3 -1
  13. package/build/protos/google/maps/routing/v2/route_modifiers.proto +0 -1
  14. package/build/protos/google/maps/routing/v2/route_travel_mode.proto +0 -1
  15. package/build/protos/google/maps/routing/v2/routes_service.proto +35 -4
  16. package/build/protos/google/maps/routing/v2/routing_preference.proto +0 -1
  17. package/build/protos/google/maps/routing/v2/speed_reading_interval.proto +0 -1
  18. package/build/protos/google/maps/routing/v2/toll_passes.proto +0 -1
  19. package/build/protos/google/maps/routing/v2/traffic_model.proto +0 -1
  20. package/build/protos/google/maps/routing/v2/transit.proto +0 -1
  21. package/build/protos/google/maps/routing/v2/transit_preferences.proto +0 -1
  22. package/build/protos/google/maps/routing/v2/units.proto +0 -1
  23. package/build/protos/google/maps/routing/v2/vehicle_emission_type.proto +0 -1
  24. package/build/protos/google/maps/routing/v2/waypoint.proto +0 -1
  25. package/build/protos/protos.d.ts +690 -252
  26. package/build/protos/protos.js +1622 -510
  27. package/build/protos/protos.json +144 -50
  28. package/build/src/v2/routes_client.d.ts +4 -1
  29. package/package.json +2 -2
@@ -3021,488 +3021,6 @@
3021
3021
  return ListValue;
3022
3022
  })();
3023
3023
 
3024
- protobuf.Duration = (function() {
3025
-
3026
- /**
3027
- * Properties of a Duration.
3028
- * @memberof google.protobuf
3029
- * @interface IDuration
3030
- * @property {number|Long|null} [seconds] Duration seconds
3031
- * @property {number|null} [nanos] Duration nanos
3032
- */
3033
-
3034
- /**
3035
- * Constructs a new Duration.
3036
- * @memberof google.protobuf
3037
- * @classdesc Represents a Duration.
3038
- * @implements IDuration
3039
- * @constructor
3040
- * @param {google.protobuf.IDuration=} [properties] Properties to set
3041
- */
3042
- function Duration(properties) {
3043
- if (properties)
3044
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
3045
- if (properties[keys[i]] != null)
3046
- this[keys[i]] = properties[keys[i]];
3047
- }
3048
-
3049
- /**
3050
- * Duration seconds.
3051
- * @member {number|Long} seconds
3052
- * @memberof google.protobuf.Duration
3053
- * @instance
3054
- */
3055
- Duration.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
3056
-
3057
- /**
3058
- * Duration nanos.
3059
- * @member {number} nanos
3060
- * @memberof google.protobuf.Duration
3061
- * @instance
3062
- */
3063
- Duration.prototype.nanos = 0;
3064
-
3065
- /**
3066
- * Creates a new Duration instance using the specified properties.
3067
- * @function create
3068
- * @memberof google.protobuf.Duration
3069
- * @static
3070
- * @param {google.protobuf.IDuration=} [properties] Properties to set
3071
- * @returns {google.protobuf.Duration} Duration instance
3072
- */
3073
- Duration.create = function create(properties) {
3074
- return new Duration(properties);
3075
- };
3076
-
3077
- /**
3078
- * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
3079
- * @function encode
3080
- * @memberof google.protobuf.Duration
3081
- * @static
3082
- * @param {google.protobuf.IDuration} message Duration message or plain object to encode
3083
- * @param {$protobuf.Writer} [writer] Writer to encode to
3084
- * @returns {$protobuf.Writer} Writer
3085
- */
3086
- Duration.encode = function encode(message, writer) {
3087
- if (!writer)
3088
- writer = $Writer.create();
3089
- if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds"))
3090
- writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds);
3091
- if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos"))
3092
- writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos);
3093
- return writer;
3094
- };
3095
-
3096
- /**
3097
- * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
3098
- * @function encodeDelimited
3099
- * @memberof google.protobuf.Duration
3100
- * @static
3101
- * @param {google.protobuf.IDuration} message Duration message or plain object to encode
3102
- * @param {$protobuf.Writer} [writer] Writer to encode to
3103
- * @returns {$protobuf.Writer} Writer
3104
- */
3105
- Duration.encodeDelimited = function encodeDelimited(message, writer) {
3106
- return this.encode(message, writer).ldelim();
3107
- };
3108
-
3109
- /**
3110
- * Decodes a Duration message from the specified reader or buffer.
3111
- * @function decode
3112
- * @memberof google.protobuf.Duration
3113
- * @static
3114
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3115
- * @param {number} [length] Message length if known beforehand
3116
- * @returns {google.protobuf.Duration} Duration
3117
- * @throws {Error} If the payload is not a reader or valid buffer
3118
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
3119
- */
3120
- Duration.decode = function decode(reader, length) {
3121
- if (!(reader instanceof $Reader))
3122
- reader = $Reader.create(reader);
3123
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Duration();
3124
- while (reader.pos < end) {
3125
- var tag = reader.uint32();
3126
- switch (tag >>> 3) {
3127
- case 1: {
3128
- message.seconds = reader.int64();
3129
- break;
3130
- }
3131
- case 2: {
3132
- message.nanos = reader.int32();
3133
- break;
3134
- }
3135
- default:
3136
- reader.skipType(tag & 7);
3137
- break;
3138
- }
3139
- }
3140
- return message;
3141
- };
3142
-
3143
- /**
3144
- * Decodes a Duration message from the specified reader or buffer, length delimited.
3145
- * @function decodeDelimited
3146
- * @memberof google.protobuf.Duration
3147
- * @static
3148
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3149
- * @returns {google.protobuf.Duration} Duration
3150
- * @throws {Error} If the payload is not a reader or valid buffer
3151
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
3152
- */
3153
- Duration.decodeDelimited = function decodeDelimited(reader) {
3154
- if (!(reader instanceof $Reader))
3155
- reader = new $Reader(reader);
3156
- return this.decode(reader, reader.uint32());
3157
- };
3158
-
3159
- /**
3160
- * Verifies a Duration message.
3161
- * @function verify
3162
- * @memberof google.protobuf.Duration
3163
- * @static
3164
- * @param {Object.<string,*>} message Plain object to verify
3165
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
3166
- */
3167
- Duration.verify = function verify(message) {
3168
- if (typeof message !== "object" || message === null)
3169
- return "object expected";
3170
- if (message.seconds != null && message.hasOwnProperty("seconds"))
3171
- if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high)))
3172
- return "seconds: integer|Long expected";
3173
- if (message.nanos != null && message.hasOwnProperty("nanos"))
3174
- if (!$util.isInteger(message.nanos))
3175
- return "nanos: integer expected";
3176
- return null;
3177
- };
3178
-
3179
- /**
3180
- * Creates a Duration message from a plain object. Also converts values to their respective internal types.
3181
- * @function fromObject
3182
- * @memberof google.protobuf.Duration
3183
- * @static
3184
- * @param {Object.<string,*>} object Plain object
3185
- * @returns {google.protobuf.Duration} Duration
3186
- */
3187
- Duration.fromObject = function fromObject(object) {
3188
- if (object instanceof $root.google.protobuf.Duration)
3189
- return object;
3190
- var message = new $root.google.protobuf.Duration();
3191
- if (object.seconds != null)
3192
- if ($util.Long)
3193
- (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false;
3194
- else if (typeof object.seconds === "string")
3195
- message.seconds = parseInt(object.seconds, 10);
3196
- else if (typeof object.seconds === "number")
3197
- message.seconds = object.seconds;
3198
- else if (typeof object.seconds === "object")
3199
- message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber();
3200
- if (object.nanos != null)
3201
- message.nanos = object.nanos | 0;
3202
- return message;
3203
- };
3204
-
3205
- /**
3206
- * Creates a plain object from a Duration message. Also converts values to other types if specified.
3207
- * @function toObject
3208
- * @memberof google.protobuf.Duration
3209
- * @static
3210
- * @param {google.protobuf.Duration} message Duration
3211
- * @param {$protobuf.IConversionOptions} [options] Conversion options
3212
- * @returns {Object.<string,*>} Plain object
3213
- */
3214
- Duration.toObject = function toObject(message, options) {
3215
- if (!options)
3216
- options = {};
3217
- var object = {};
3218
- if (options.defaults) {
3219
- if ($util.Long) {
3220
- var long = new $util.Long(0, 0, false);
3221
- object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
3222
- } else
3223
- object.seconds = options.longs === String ? "0" : 0;
3224
- object.nanos = 0;
3225
- }
3226
- if (message.seconds != null && message.hasOwnProperty("seconds"))
3227
- if (typeof message.seconds === "number")
3228
- object.seconds = options.longs === String ? String(message.seconds) : message.seconds;
3229
- else
3230
- object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds;
3231
- if (message.nanos != null && message.hasOwnProperty("nanos"))
3232
- object.nanos = message.nanos;
3233
- return object;
3234
- };
3235
-
3236
- /**
3237
- * Converts this Duration to JSON.
3238
- * @function toJSON
3239
- * @memberof google.protobuf.Duration
3240
- * @instance
3241
- * @returns {Object.<string,*>} JSON object
3242
- */
3243
- Duration.prototype.toJSON = function toJSON() {
3244
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
3245
- };
3246
-
3247
- /**
3248
- * Gets the default type url for Duration
3249
- * @function getTypeUrl
3250
- * @memberof google.protobuf.Duration
3251
- * @static
3252
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
3253
- * @returns {string} The default type url
3254
- */
3255
- Duration.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
3256
- if (typeUrlPrefix === undefined) {
3257
- typeUrlPrefix = "type.googleapis.com";
3258
- }
3259
- return typeUrlPrefix + "/google.protobuf.Duration";
3260
- };
3261
-
3262
- return Duration;
3263
- })();
3264
-
3265
- protobuf.Timestamp = (function() {
3266
-
3267
- /**
3268
- * Properties of a Timestamp.
3269
- * @memberof google.protobuf
3270
- * @interface ITimestamp
3271
- * @property {number|Long|null} [seconds] Timestamp seconds
3272
- * @property {number|null} [nanos] Timestamp nanos
3273
- */
3274
-
3275
- /**
3276
- * Constructs a new Timestamp.
3277
- * @memberof google.protobuf
3278
- * @classdesc Represents a Timestamp.
3279
- * @implements ITimestamp
3280
- * @constructor
3281
- * @param {google.protobuf.ITimestamp=} [properties] Properties to set
3282
- */
3283
- function Timestamp(properties) {
3284
- if (properties)
3285
- for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
3286
- if (properties[keys[i]] != null)
3287
- this[keys[i]] = properties[keys[i]];
3288
- }
3289
-
3290
- /**
3291
- * Timestamp seconds.
3292
- * @member {number|Long} seconds
3293
- * @memberof google.protobuf.Timestamp
3294
- * @instance
3295
- */
3296
- Timestamp.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
3297
-
3298
- /**
3299
- * Timestamp nanos.
3300
- * @member {number} nanos
3301
- * @memberof google.protobuf.Timestamp
3302
- * @instance
3303
- */
3304
- Timestamp.prototype.nanos = 0;
3305
-
3306
- /**
3307
- * Creates a new Timestamp instance using the specified properties.
3308
- * @function create
3309
- * @memberof google.protobuf.Timestamp
3310
- * @static
3311
- * @param {google.protobuf.ITimestamp=} [properties] Properties to set
3312
- * @returns {google.protobuf.Timestamp} Timestamp instance
3313
- */
3314
- Timestamp.create = function create(properties) {
3315
- return new Timestamp(properties);
3316
- };
3317
-
3318
- /**
3319
- * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
3320
- * @function encode
3321
- * @memberof google.protobuf.Timestamp
3322
- * @static
3323
- * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode
3324
- * @param {$protobuf.Writer} [writer] Writer to encode to
3325
- * @returns {$protobuf.Writer} Writer
3326
- */
3327
- Timestamp.encode = function encode(message, writer) {
3328
- if (!writer)
3329
- writer = $Writer.create();
3330
- if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds"))
3331
- writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds);
3332
- if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos"))
3333
- writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos);
3334
- return writer;
3335
- };
3336
-
3337
- /**
3338
- * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
3339
- * @function encodeDelimited
3340
- * @memberof google.protobuf.Timestamp
3341
- * @static
3342
- * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode
3343
- * @param {$protobuf.Writer} [writer] Writer to encode to
3344
- * @returns {$protobuf.Writer} Writer
3345
- */
3346
- Timestamp.encodeDelimited = function encodeDelimited(message, writer) {
3347
- return this.encode(message, writer).ldelim();
3348
- };
3349
-
3350
- /**
3351
- * Decodes a Timestamp message from the specified reader or buffer.
3352
- * @function decode
3353
- * @memberof google.protobuf.Timestamp
3354
- * @static
3355
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3356
- * @param {number} [length] Message length if known beforehand
3357
- * @returns {google.protobuf.Timestamp} Timestamp
3358
- * @throws {Error} If the payload is not a reader or valid buffer
3359
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
3360
- */
3361
- Timestamp.decode = function decode(reader, length) {
3362
- if (!(reader instanceof $Reader))
3363
- reader = $Reader.create(reader);
3364
- var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp();
3365
- while (reader.pos < end) {
3366
- var tag = reader.uint32();
3367
- switch (tag >>> 3) {
3368
- case 1: {
3369
- message.seconds = reader.int64();
3370
- break;
3371
- }
3372
- case 2: {
3373
- message.nanos = reader.int32();
3374
- break;
3375
- }
3376
- default:
3377
- reader.skipType(tag & 7);
3378
- break;
3379
- }
3380
- }
3381
- return message;
3382
- };
3383
-
3384
- /**
3385
- * Decodes a Timestamp message from the specified reader or buffer, length delimited.
3386
- * @function decodeDelimited
3387
- * @memberof google.protobuf.Timestamp
3388
- * @static
3389
- * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
3390
- * @returns {google.protobuf.Timestamp} Timestamp
3391
- * @throws {Error} If the payload is not a reader or valid buffer
3392
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
3393
- */
3394
- Timestamp.decodeDelimited = function decodeDelimited(reader) {
3395
- if (!(reader instanceof $Reader))
3396
- reader = new $Reader(reader);
3397
- return this.decode(reader, reader.uint32());
3398
- };
3399
-
3400
- /**
3401
- * Verifies a Timestamp message.
3402
- * @function verify
3403
- * @memberof google.protobuf.Timestamp
3404
- * @static
3405
- * @param {Object.<string,*>} message Plain object to verify
3406
- * @returns {string|null} `null` if valid, otherwise the reason why it is not
3407
- */
3408
- Timestamp.verify = function verify(message) {
3409
- if (typeof message !== "object" || message === null)
3410
- return "object expected";
3411
- if (message.seconds != null && message.hasOwnProperty("seconds"))
3412
- if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high)))
3413
- return "seconds: integer|Long expected";
3414
- if (message.nanos != null && message.hasOwnProperty("nanos"))
3415
- if (!$util.isInteger(message.nanos))
3416
- return "nanos: integer expected";
3417
- return null;
3418
- };
3419
-
3420
- /**
3421
- * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.
3422
- * @function fromObject
3423
- * @memberof google.protobuf.Timestamp
3424
- * @static
3425
- * @param {Object.<string,*>} object Plain object
3426
- * @returns {google.protobuf.Timestamp} Timestamp
3427
- */
3428
- Timestamp.fromObject = function fromObject(object) {
3429
- if (object instanceof $root.google.protobuf.Timestamp)
3430
- return object;
3431
- var message = new $root.google.protobuf.Timestamp();
3432
- if (object.seconds != null)
3433
- if ($util.Long)
3434
- (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false;
3435
- else if (typeof object.seconds === "string")
3436
- message.seconds = parseInt(object.seconds, 10);
3437
- else if (typeof object.seconds === "number")
3438
- message.seconds = object.seconds;
3439
- else if (typeof object.seconds === "object")
3440
- message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber();
3441
- if (object.nanos != null)
3442
- message.nanos = object.nanos | 0;
3443
- return message;
3444
- };
3445
-
3446
- /**
3447
- * Creates a plain object from a Timestamp message. Also converts values to other types if specified.
3448
- * @function toObject
3449
- * @memberof google.protobuf.Timestamp
3450
- * @static
3451
- * @param {google.protobuf.Timestamp} message Timestamp
3452
- * @param {$protobuf.IConversionOptions} [options] Conversion options
3453
- * @returns {Object.<string,*>} Plain object
3454
- */
3455
- Timestamp.toObject = function toObject(message, options) {
3456
- if (!options)
3457
- options = {};
3458
- var object = {};
3459
- if (options.defaults) {
3460
- if ($util.Long) {
3461
- var long = new $util.Long(0, 0, false);
3462
- object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
3463
- } else
3464
- object.seconds = options.longs === String ? "0" : 0;
3465
- object.nanos = 0;
3466
- }
3467
- if (message.seconds != null && message.hasOwnProperty("seconds"))
3468
- if (typeof message.seconds === "number")
3469
- object.seconds = options.longs === String ? String(message.seconds) : message.seconds;
3470
- else
3471
- object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds;
3472
- if (message.nanos != null && message.hasOwnProperty("nanos"))
3473
- object.nanos = message.nanos;
3474
- return object;
3475
- };
3476
-
3477
- /**
3478
- * Converts this Timestamp to JSON.
3479
- * @function toJSON
3480
- * @memberof google.protobuf.Timestamp
3481
- * @instance
3482
- * @returns {Object.<string,*>} JSON object
3483
- */
3484
- Timestamp.prototype.toJSON = function toJSON() {
3485
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
3486
- };
3487
-
3488
- /**
3489
- * Gets the default type url for Timestamp
3490
- * @function getTypeUrl
3491
- * @memberof google.protobuf.Timestamp
3492
- * @static
3493
- * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
3494
- * @returns {string} The default type url
3495
- */
3496
- Timestamp.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
3497
- if (typeUrlPrefix === undefined) {
3498
- typeUrlPrefix = "type.googleapis.com";
3499
- }
3500
- return typeUrlPrefix + "/google.protobuf.Timestamp";
3501
- };
3502
-
3503
- return Timestamp;
3504
- })();
3505
-
3506
3024
  protobuf.FileDescriptorSet = (function() {
3507
3025
 
3508
3026
  /**
@@ -15390,6 +14908,488 @@
15390
14908
  return GeneratedCodeInfo;
15391
14909
  })();
15392
14910
 
14911
+ protobuf.Duration = (function() {
14912
+
14913
+ /**
14914
+ * Properties of a Duration.
14915
+ * @memberof google.protobuf
14916
+ * @interface IDuration
14917
+ * @property {number|Long|null} [seconds] Duration seconds
14918
+ * @property {number|null} [nanos] Duration nanos
14919
+ */
14920
+
14921
+ /**
14922
+ * Constructs a new Duration.
14923
+ * @memberof google.protobuf
14924
+ * @classdesc Represents a Duration.
14925
+ * @implements IDuration
14926
+ * @constructor
14927
+ * @param {google.protobuf.IDuration=} [properties] Properties to set
14928
+ */
14929
+ function Duration(properties) {
14930
+ if (properties)
14931
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
14932
+ if (properties[keys[i]] != null)
14933
+ this[keys[i]] = properties[keys[i]];
14934
+ }
14935
+
14936
+ /**
14937
+ * Duration seconds.
14938
+ * @member {number|Long} seconds
14939
+ * @memberof google.protobuf.Duration
14940
+ * @instance
14941
+ */
14942
+ Duration.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
14943
+
14944
+ /**
14945
+ * Duration nanos.
14946
+ * @member {number} nanos
14947
+ * @memberof google.protobuf.Duration
14948
+ * @instance
14949
+ */
14950
+ Duration.prototype.nanos = 0;
14951
+
14952
+ /**
14953
+ * Creates a new Duration instance using the specified properties.
14954
+ * @function create
14955
+ * @memberof google.protobuf.Duration
14956
+ * @static
14957
+ * @param {google.protobuf.IDuration=} [properties] Properties to set
14958
+ * @returns {google.protobuf.Duration} Duration instance
14959
+ */
14960
+ Duration.create = function create(properties) {
14961
+ return new Duration(properties);
14962
+ };
14963
+
14964
+ /**
14965
+ * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
14966
+ * @function encode
14967
+ * @memberof google.protobuf.Duration
14968
+ * @static
14969
+ * @param {google.protobuf.IDuration} message Duration message or plain object to encode
14970
+ * @param {$protobuf.Writer} [writer] Writer to encode to
14971
+ * @returns {$protobuf.Writer} Writer
14972
+ */
14973
+ Duration.encode = function encode(message, writer) {
14974
+ if (!writer)
14975
+ writer = $Writer.create();
14976
+ if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds"))
14977
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds);
14978
+ if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos"))
14979
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos);
14980
+ return writer;
14981
+ };
14982
+
14983
+ /**
14984
+ * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
14985
+ * @function encodeDelimited
14986
+ * @memberof google.protobuf.Duration
14987
+ * @static
14988
+ * @param {google.protobuf.IDuration} message Duration message or plain object to encode
14989
+ * @param {$protobuf.Writer} [writer] Writer to encode to
14990
+ * @returns {$protobuf.Writer} Writer
14991
+ */
14992
+ Duration.encodeDelimited = function encodeDelimited(message, writer) {
14993
+ return this.encode(message, writer).ldelim();
14994
+ };
14995
+
14996
+ /**
14997
+ * Decodes a Duration message from the specified reader or buffer.
14998
+ * @function decode
14999
+ * @memberof google.protobuf.Duration
15000
+ * @static
15001
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
15002
+ * @param {number} [length] Message length if known beforehand
15003
+ * @returns {google.protobuf.Duration} Duration
15004
+ * @throws {Error} If the payload is not a reader or valid buffer
15005
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
15006
+ */
15007
+ Duration.decode = function decode(reader, length) {
15008
+ if (!(reader instanceof $Reader))
15009
+ reader = $Reader.create(reader);
15010
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Duration();
15011
+ while (reader.pos < end) {
15012
+ var tag = reader.uint32();
15013
+ switch (tag >>> 3) {
15014
+ case 1: {
15015
+ message.seconds = reader.int64();
15016
+ break;
15017
+ }
15018
+ case 2: {
15019
+ message.nanos = reader.int32();
15020
+ break;
15021
+ }
15022
+ default:
15023
+ reader.skipType(tag & 7);
15024
+ break;
15025
+ }
15026
+ }
15027
+ return message;
15028
+ };
15029
+
15030
+ /**
15031
+ * Decodes a Duration message from the specified reader or buffer, length delimited.
15032
+ * @function decodeDelimited
15033
+ * @memberof google.protobuf.Duration
15034
+ * @static
15035
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
15036
+ * @returns {google.protobuf.Duration} Duration
15037
+ * @throws {Error} If the payload is not a reader or valid buffer
15038
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
15039
+ */
15040
+ Duration.decodeDelimited = function decodeDelimited(reader) {
15041
+ if (!(reader instanceof $Reader))
15042
+ reader = new $Reader(reader);
15043
+ return this.decode(reader, reader.uint32());
15044
+ };
15045
+
15046
+ /**
15047
+ * Verifies a Duration message.
15048
+ * @function verify
15049
+ * @memberof google.protobuf.Duration
15050
+ * @static
15051
+ * @param {Object.<string,*>} message Plain object to verify
15052
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
15053
+ */
15054
+ Duration.verify = function verify(message) {
15055
+ if (typeof message !== "object" || message === null)
15056
+ return "object expected";
15057
+ if (message.seconds != null && message.hasOwnProperty("seconds"))
15058
+ if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high)))
15059
+ return "seconds: integer|Long expected";
15060
+ if (message.nanos != null && message.hasOwnProperty("nanos"))
15061
+ if (!$util.isInteger(message.nanos))
15062
+ return "nanos: integer expected";
15063
+ return null;
15064
+ };
15065
+
15066
+ /**
15067
+ * Creates a Duration message from a plain object. Also converts values to their respective internal types.
15068
+ * @function fromObject
15069
+ * @memberof google.protobuf.Duration
15070
+ * @static
15071
+ * @param {Object.<string,*>} object Plain object
15072
+ * @returns {google.protobuf.Duration} Duration
15073
+ */
15074
+ Duration.fromObject = function fromObject(object) {
15075
+ if (object instanceof $root.google.protobuf.Duration)
15076
+ return object;
15077
+ var message = new $root.google.protobuf.Duration();
15078
+ if (object.seconds != null)
15079
+ if ($util.Long)
15080
+ (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false;
15081
+ else if (typeof object.seconds === "string")
15082
+ message.seconds = parseInt(object.seconds, 10);
15083
+ else if (typeof object.seconds === "number")
15084
+ message.seconds = object.seconds;
15085
+ else if (typeof object.seconds === "object")
15086
+ message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber();
15087
+ if (object.nanos != null)
15088
+ message.nanos = object.nanos | 0;
15089
+ return message;
15090
+ };
15091
+
15092
+ /**
15093
+ * Creates a plain object from a Duration message. Also converts values to other types if specified.
15094
+ * @function toObject
15095
+ * @memberof google.protobuf.Duration
15096
+ * @static
15097
+ * @param {google.protobuf.Duration} message Duration
15098
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
15099
+ * @returns {Object.<string,*>} Plain object
15100
+ */
15101
+ Duration.toObject = function toObject(message, options) {
15102
+ if (!options)
15103
+ options = {};
15104
+ var object = {};
15105
+ if (options.defaults) {
15106
+ if ($util.Long) {
15107
+ var long = new $util.Long(0, 0, false);
15108
+ object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
15109
+ } else
15110
+ object.seconds = options.longs === String ? "0" : 0;
15111
+ object.nanos = 0;
15112
+ }
15113
+ if (message.seconds != null && message.hasOwnProperty("seconds"))
15114
+ if (typeof message.seconds === "number")
15115
+ object.seconds = options.longs === String ? String(message.seconds) : message.seconds;
15116
+ else
15117
+ object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds;
15118
+ if (message.nanos != null && message.hasOwnProperty("nanos"))
15119
+ object.nanos = message.nanos;
15120
+ return object;
15121
+ };
15122
+
15123
+ /**
15124
+ * Converts this Duration to JSON.
15125
+ * @function toJSON
15126
+ * @memberof google.protobuf.Duration
15127
+ * @instance
15128
+ * @returns {Object.<string,*>} JSON object
15129
+ */
15130
+ Duration.prototype.toJSON = function toJSON() {
15131
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
15132
+ };
15133
+
15134
+ /**
15135
+ * Gets the default type url for Duration
15136
+ * @function getTypeUrl
15137
+ * @memberof google.protobuf.Duration
15138
+ * @static
15139
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
15140
+ * @returns {string} The default type url
15141
+ */
15142
+ Duration.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
15143
+ if (typeUrlPrefix === undefined) {
15144
+ typeUrlPrefix = "type.googleapis.com";
15145
+ }
15146
+ return typeUrlPrefix + "/google.protobuf.Duration";
15147
+ };
15148
+
15149
+ return Duration;
15150
+ })();
15151
+
15152
+ protobuf.Timestamp = (function() {
15153
+
15154
+ /**
15155
+ * Properties of a Timestamp.
15156
+ * @memberof google.protobuf
15157
+ * @interface ITimestamp
15158
+ * @property {number|Long|null} [seconds] Timestamp seconds
15159
+ * @property {number|null} [nanos] Timestamp nanos
15160
+ */
15161
+
15162
+ /**
15163
+ * Constructs a new Timestamp.
15164
+ * @memberof google.protobuf
15165
+ * @classdesc Represents a Timestamp.
15166
+ * @implements ITimestamp
15167
+ * @constructor
15168
+ * @param {google.protobuf.ITimestamp=} [properties] Properties to set
15169
+ */
15170
+ function Timestamp(properties) {
15171
+ if (properties)
15172
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
15173
+ if (properties[keys[i]] != null)
15174
+ this[keys[i]] = properties[keys[i]];
15175
+ }
15176
+
15177
+ /**
15178
+ * Timestamp seconds.
15179
+ * @member {number|Long} seconds
15180
+ * @memberof google.protobuf.Timestamp
15181
+ * @instance
15182
+ */
15183
+ Timestamp.prototype.seconds = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
15184
+
15185
+ /**
15186
+ * Timestamp nanos.
15187
+ * @member {number} nanos
15188
+ * @memberof google.protobuf.Timestamp
15189
+ * @instance
15190
+ */
15191
+ Timestamp.prototype.nanos = 0;
15192
+
15193
+ /**
15194
+ * Creates a new Timestamp instance using the specified properties.
15195
+ * @function create
15196
+ * @memberof google.protobuf.Timestamp
15197
+ * @static
15198
+ * @param {google.protobuf.ITimestamp=} [properties] Properties to set
15199
+ * @returns {google.protobuf.Timestamp} Timestamp instance
15200
+ */
15201
+ Timestamp.create = function create(properties) {
15202
+ return new Timestamp(properties);
15203
+ };
15204
+
15205
+ /**
15206
+ * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
15207
+ * @function encode
15208
+ * @memberof google.protobuf.Timestamp
15209
+ * @static
15210
+ * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode
15211
+ * @param {$protobuf.Writer} [writer] Writer to encode to
15212
+ * @returns {$protobuf.Writer} Writer
15213
+ */
15214
+ Timestamp.encode = function encode(message, writer) {
15215
+ if (!writer)
15216
+ writer = $Writer.create();
15217
+ if (message.seconds != null && Object.hasOwnProperty.call(message, "seconds"))
15218
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds);
15219
+ if (message.nanos != null && Object.hasOwnProperty.call(message, "nanos"))
15220
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos);
15221
+ return writer;
15222
+ };
15223
+
15224
+ /**
15225
+ * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
15226
+ * @function encodeDelimited
15227
+ * @memberof google.protobuf.Timestamp
15228
+ * @static
15229
+ * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode
15230
+ * @param {$protobuf.Writer} [writer] Writer to encode to
15231
+ * @returns {$protobuf.Writer} Writer
15232
+ */
15233
+ Timestamp.encodeDelimited = function encodeDelimited(message, writer) {
15234
+ return this.encode(message, writer).ldelim();
15235
+ };
15236
+
15237
+ /**
15238
+ * Decodes a Timestamp message from the specified reader or buffer.
15239
+ * @function decode
15240
+ * @memberof google.protobuf.Timestamp
15241
+ * @static
15242
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
15243
+ * @param {number} [length] Message length if known beforehand
15244
+ * @returns {google.protobuf.Timestamp} Timestamp
15245
+ * @throws {Error} If the payload is not a reader or valid buffer
15246
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
15247
+ */
15248
+ Timestamp.decode = function decode(reader, length) {
15249
+ if (!(reader instanceof $Reader))
15250
+ reader = $Reader.create(reader);
15251
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp();
15252
+ while (reader.pos < end) {
15253
+ var tag = reader.uint32();
15254
+ switch (tag >>> 3) {
15255
+ case 1: {
15256
+ message.seconds = reader.int64();
15257
+ break;
15258
+ }
15259
+ case 2: {
15260
+ message.nanos = reader.int32();
15261
+ break;
15262
+ }
15263
+ default:
15264
+ reader.skipType(tag & 7);
15265
+ break;
15266
+ }
15267
+ }
15268
+ return message;
15269
+ };
15270
+
15271
+ /**
15272
+ * Decodes a Timestamp message from the specified reader or buffer, length delimited.
15273
+ * @function decodeDelimited
15274
+ * @memberof google.protobuf.Timestamp
15275
+ * @static
15276
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
15277
+ * @returns {google.protobuf.Timestamp} Timestamp
15278
+ * @throws {Error} If the payload is not a reader or valid buffer
15279
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
15280
+ */
15281
+ Timestamp.decodeDelimited = function decodeDelimited(reader) {
15282
+ if (!(reader instanceof $Reader))
15283
+ reader = new $Reader(reader);
15284
+ return this.decode(reader, reader.uint32());
15285
+ };
15286
+
15287
+ /**
15288
+ * Verifies a Timestamp message.
15289
+ * @function verify
15290
+ * @memberof google.protobuf.Timestamp
15291
+ * @static
15292
+ * @param {Object.<string,*>} message Plain object to verify
15293
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
15294
+ */
15295
+ Timestamp.verify = function verify(message) {
15296
+ if (typeof message !== "object" || message === null)
15297
+ return "object expected";
15298
+ if (message.seconds != null && message.hasOwnProperty("seconds"))
15299
+ if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high)))
15300
+ return "seconds: integer|Long expected";
15301
+ if (message.nanos != null && message.hasOwnProperty("nanos"))
15302
+ if (!$util.isInteger(message.nanos))
15303
+ return "nanos: integer expected";
15304
+ return null;
15305
+ };
15306
+
15307
+ /**
15308
+ * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.
15309
+ * @function fromObject
15310
+ * @memberof google.protobuf.Timestamp
15311
+ * @static
15312
+ * @param {Object.<string,*>} object Plain object
15313
+ * @returns {google.protobuf.Timestamp} Timestamp
15314
+ */
15315
+ Timestamp.fromObject = function fromObject(object) {
15316
+ if (object instanceof $root.google.protobuf.Timestamp)
15317
+ return object;
15318
+ var message = new $root.google.protobuf.Timestamp();
15319
+ if (object.seconds != null)
15320
+ if ($util.Long)
15321
+ (message.seconds = $util.Long.fromValue(object.seconds)).unsigned = false;
15322
+ else if (typeof object.seconds === "string")
15323
+ message.seconds = parseInt(object.seconds, 10);
15324
+ else if (typeof object.seconds === "number")
15325
+ message.seconds = object.seconds;
15326
+ else if (typeof object.seconds === "object")
15327
+ message.seconds = new $util.LongBits(object.seconds.low >>> 0, object.seconds.high >>> 0).toNumber();
15328
+ if (object.nanos != null)
15329
+ message.nanos = object.nanos | 0;
15330
+ return message;
15331
+ };
15332
+
15333
+ /**
15334
+ * Creates a plain object from a Timestamp message. Also converts values to other types if specified.
15335
+ * @function toObject
15336
+ * @memberof google.protobuf.Timestamp
15337
+ * @static
15338
+ * @param {google.protobuf.Timestamp} message Timestamp
15339
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
15340
+ * @returns {Object.<string,*>} Plain object
15341
+ */
15342
+ Timestamp.toObject = function toObject(message, options) {
15343
+ if (!options)
15344
+ options = {};
15345
+ var object = {};
15346
+ if (options.defaults) {
15347
+ if ($util.Long) {
15348
+ var long = new $util.Long(0, 0, false);
15349
+ object.seconds = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
15350
+ } else
15351
+ object.seconds = options.longs === String ? "0" : 0;
15352
+ object.nanos = 0;
15353
+ }
15354
+ if (message.seconds != null && message.hasOwnProperty("seconds"))
15355
+ if (typeof message.seconds === "number")
15356
+ object.seconds = options.longs === String ? String(message.seconds) : message.seconds;
15357
+ else
15358
+ object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds;
15359
+ if (message.nanos != null && message.hasOwnProperty("nanos"))
15360
+ object.nanos = message.nanos;
15361
+ return object;
15362
+ };
15363
+
15364
+ /**
15365
+ * Converts this Timestamp to JSON.
15366
+ * @function toJSON
15367
+ * @memberof google.protobuf.Timestamp
15368
+ * @instance
15369
+ * @returns {Object.<string,*>} JSON object
15370
+ */
15371
+ Timestamp.prototype.toJSON = function toJSON() {
15372
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
15373
+ };
15374
+
15375
+ /**
15376
+ * Gets the default type url for Timestamp
15377
+ * @function getTypeUrl
15378
+ * @memberof google.protobuf.Timestamp
15379
+ * @static
15380
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
15381
+ * @returns {string} The default type url
15382
+ */
15383
+ Timestamp.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
15384
+ if (typeUrlPrefix === undefined) {
15385
+ typeUrlPrefix = "type.googleapis.com";
15386
+ }
15387
+ return typeUrlPrefix + "/google.protobuf.Timestamp";
15388
+ };
15389
+
15390
+ return Timestamp;
15391
+ })();
15392
+
15393
15393
  return protobuf;
15394
15394
  })();
15395
15395
 
@@ -18487,6 +18487,1062 @@
18487
18487
  return values;
18488
18488
  })();
18489
18489
 
18490
+ v2.PolylineDetails = (function() {
18491
+
18492
+ /**
18493
+ * Properties of a PolylineDetails.
18494
+ * @memberof google.maps.routing.v2
18495
+ * @interface IPolylineDetails
18496
+ * @property {Array.<google.maps.routing.v2.PolylineDetails.IFlyoverInfo>|null} [flyoverInfo] PolylineDetails flyoverInfo
18497
+ * @property {Array.<google.maps.routing.v2.PolylineDetails.INarrowRoadInfo>|null} [narrowRoadInfo] PolylineDetails narrowRoadInfo
18498
+ */
18499
+
18500
+ /**
18501
+ * Constructs a new PolylineDetails.
18502
+ * @memberof google.maps.routing.v2
18503
+ * @classdesc Represents a PolylineDetails.
18504
+ * @implements IPolylineDetails
18505
+ * @constructor
18506
+ * @param {google.maps.routing.v2.IPolylineDetails=} [properties] Properties to set
18507
+ */
18508
+ function PolylineDetails(properties) {
18509
+ this.flyoverInfo = [];
18510
+ this.narrowRoadInfo = [];
18511
+ if (properties)
18512
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
18513
+ if (properties[keys[i]] != null)
18514
+ this[keys[i]] = properties[keys[i]];
18515
+ }
18516
+
18517
+ /**
18518
+ * PolylineDetails flyoverInfo.
18519
+ * @member {Array.<google.maps.routing.v2.PolylineDetails.IFlyoverInfo>} flyoverInfo
18520
+ * @memberof google.maps.routing.v2.PolylineDetails
18521
+ * @instance
18522
+ */
18523
+ PolylineDetails.prototype.flyoverInfo = $util.emptyArray;
18524
+
18525
+ /**
18526
+ * PolylineDetails narrowRoadInfo.
18527
+ * @member {Array.<google.maps.routing.v2.PolylineDetails.INarrowRoadInfo>} narrowRoadInfo
18528
+ * @memberof google.maps.routing.v2.PolylineDetails
18529
+ * @instance
18530
+ */
18531
+ PolylineDetails.prototype.narrowRoadInfo = $util.emptyArray;
18532
+
18533
+ /**
18534
+ * Creates a new PolylineDetails instance using the specified properties.
18535
+ * @function create
18536
+ * @memberof google.maps.routing.v2.PolylineDetails
18537
+ * @static
18538
+ * @param {google.maps.routing.v2.IPolylineDetails=} [properties] Properties to set
18539
+ * @returns {google.maps.routing.v2.PolylineDetails} PolylineDetails instance
18540
+ */
18541
+ PolylineDetails.create = function create(properties) {
18542
+ return new PolylineDetails(properties);
18543
+ };
18544
+
18545
+ /**
18546
+ * Encodes the specified PolylineDetails message. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.verify|verify} messages.
18547
+ * @function encode
18548
+ * @memberof google.maps.routing.v2.PolylineDetails
18549
+ * @static
18550
+ * @param {google.maps.routing.v2.IPolylineDetails} message PolylineDetails message or plain object to encode
18551
+ * @param {$protobuf.Writer} [writer] Writer to encode to
18552
+ * @returns {$protobuf.Writer} Writer
18553
+ */
18554
+ PolylineDetails.encode = function encode(message, writer) {
18555
+ if (!writer)
18556
+ writer = $Writer.create();
18557
+ if (message.flyoverInfo != null && message.flyoverInfo.length)
18558
+ for (var i = 0; i < message.flyoverInfo.length; ++i)
18559
+ $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.encode(message.flyoverInfo[i], writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();
18560
+ if (message.narrowRoadInfo != null && message.narrowRoadInfo.length)
18561
+ for (var i = 0; i < message.narrowRoadInfo.length; ++i)
18562
+ $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.encode(message.narrowRoadInfo[i], writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim();
18563
+ return writer;
18564
+ };
18565
+
18566
+ /**
18567
+ * Encodes the specified PolylineDetails message, length delimited. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.verify|verify} messages.
18568
+ * @function encodeDelimited
18569
+ * @memberof google.maps.routing.v2.PolylineDetails
18570
+ * @static
18571
+ * @param {google.maps.routing.v2.IPolylineDetails} message PolylineDetails message or plain object to encode
18572
+ * @param {$protobuf.Writer} [writer] Writer to encode to
18573
+ * @returns {$protobuf.Writer} Writer
18574
+ */
18575
+ PolylineDetails.encodeDelimited = function encodeDelimited(message, writer) {
18576
+ return this.encode(message, writer).ldelim();
18577
+ };
18578
+
18579
+ /**
18580
+ * Decodes a PolylineDetails message from the specified reader or buffer.
18581
+ * @function decode
18582
+ * @memberof google.maps.routing.v2.PolylineDetails
18583
+ * @static
18584
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
18585
+ * @param {number} [length] Message length if known beforehand
18586
+ * @returns {google.maps.routing.v2.PolylineDetails} PolylineDetails
18587
+ * @throws {Error} If the payload is not a reader or valid buffer
18588
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
18589
+ */
18590
+ PolylineDetails.decode = function decode(reader, length) {
18591
+ if (!(reader instanceof $Reader))
18592
+ reader = $Reader.create(reader);
18593
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.maps.routing.v2.PolylineDetails();
18594
+ while (reader.pos < end) {
18595
+ var tag = reader.uint32();
18596
+ switch (tag >>> 3) {
18597
+ case 12: {
18598
+ if (!(message.flyoverInfo && message.flyoverInfo.length))
18599
+ message.flyoverInfo = [];
18600
+ message.flyoverInfo.push($root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.decode(reader, reader.uint32()));
18601
+ break;
18602
+ }
18603
+ case 13: {
18604
+ if (!(message.narrowRoadInfo && message.narrowRoadInfo.length))
18605
+ message.narrowRoadInfo = [];
18606
+ message.narrowRoadInfo.push($root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.decode(reader, reader.uint32()));
18607
+ break;
18608
+ }
18609
+ default:
18610
+ reader.skipType(tag & 7);
18611
+ break;
18612
+ }
18613
+ }
18614
+ return message;
18615
+ };
18616
+
18617
+ /**
18618
+ * Decodes a PolylineDetails message from the specified reader or buffer, length delimited.
18619
+ * @function decodeDelimited
18620
+ * @memberof google.maps.routing.v2.PolylineDetails
18621
+ * @static
18622
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
18623
+ * @returns {google.maps.routing.v2.PolylineDetails} PolylineDetails
18624
+ * @throws {Error} If the payload is not a reader or valid buffer
18625
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
18626
+ */
18627
+ PolylineDetails.decodeDelimited = function decodeDelimited(reader) {
18628
+ if (!(reader instanceof $Reader))
18629
+ reader = new $Reader(reader);
18630
+ return this.decode(reader, reader.uint32());
18631
+ };
18632
+
18633
+ /**
18634
+ * Verifies a PolylineDetails message.
18635
+ * @function verify
18636
+ * @memberof google.maps.routing.v2.PolylineDetails
18637
+ * @static
18638
+ * @param {Object.<string,*>} message Plain object to verify
18639
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
18640
+ */
18641
+ PolylineDetails.verify = function verify(message) {
18642
+ if (typeof message !== "object" || message === null)
18643
+ return "object expected";
18644
+ if (message.flyoverInfo != null && message.hasOwnProperty("flyoverInfo")) {
18645
+ if (!Array.isArray(message.flyoverInfo))
18646
+ return "flyoverInfo: array expected";
18647
+ for (var i = 0; i < message.flyoverInfo.length; ++i) {
18648
+ var error = $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.verify(message.flyoverInfo[i]);
18649
+ if (error)
18650
+ return "flyoverInfo." + error;
18651
+ }
18652
+ }
18653
+ if (message.narrowRoadInfo != null && message.hasOwnProperty("narrowRoadInfo")) {
18654
+ if (!Array.isArray(message.narrowRoadInfo))
18655
+ return "narrowRoadInfo: array expected";
18656
+ for (var i = 0; i < message.narrowRoadInfo.length; ++i) {
18657
+ var error = $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.verify(message.narrowRoadInfo[i]);
18658
+ if (error)
18659
+ return "narrowRoadInfo." + error;
18660
+ }
18661
+ }
18662
+ return null;
18663
+ };
18664
+
18665
+ /**
18666
+ * Creates a PolylineDetails message from a plain object. Also converts values to their respective internal types.
18667
+ * @function fromObject
18668
+ * @memberof google.maps.routing.v2.PolylineDetails
18669
+ * @static
18670
+ * @param {Object.<string,*>} object Plain object
18671
+ * @returns {google.maps.routing.v2.PolylineDetails} PolylineDetails
18672
+ */
18673
+ PolylineDetails.fromObject = function fromObject(object) {
18674
+ if (object instanceof $root.google.maps.routing.v2.PolylineDetails)
18675
+ return object;
18676
+ var message = new $root.google.maps.routing.v2.PolylineDetails();
18677
+ if (object.flyoverInfo) {
18678
+ if (!Array.isArray(object.flyoverInfo))
18679
+ throw TypeError(".google.maps.routing.v2.PolylineDetails.flyoverInfo: array expected");
18680
+ message.flyoverInfo = [];
18681
+ for (var i = 0; i < object.flyoverInfo.length; ++i) {
18682
+ if (typeof object.flyoverInfo[i] !== "object")
18683
+ throw TypeError(".google.maps.routing.v2.PolylineDetails.flyoverInfo: object expected");
18684
+ message.flyoverInfo[i] = $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.fromObject(object.flyoverInfo[i]);
18685
+ }
18686
+ }
18687
+ if (object.narrowRoadInfo) {
18688
+ if (!Array.isArray(object.narrowRoadInfo))
18689
+ throw TypeError(".google.maps.routing.v2.PolylineDetails.narrowRoadInfo: array expected");
18690
+ message.narrowRoadInfo = [];
18691
+ for (var i = 0; i < object.narrowRoadInfo.length; ++i) {
18692
+ if (typeof object.narrowRoadInfo[i] !== "object")
18693
+ throw TypeError(".google.maps.routing.v2.PolylineDetails.narrowRoadInfo: object expected");
18694
+ message.narrowRoadInfo[i] = $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.fromObject(object.narrowRoadInfo[i]);
18695
+ }
18696
+ }
18697
+ return message;
18698
+ };
18699
+
18700
+ /**
18701
+ * Creates a plain object from a PolylineDetails message. Also converts values to other types if specified.
18702
+ * @function toObject
18703
+ * @memberof google.maps.routing.v2.PolylineDetails
18704
+ * @static
18705
+ * @param {google.maps.routing.v2.PolylineDetails} message PolylineDetails
18706
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
18707
+ * @returns {Object.<string,*>} Plain object
18708
+ */
18709
+ PolylineDetails.toObject = function toObject(message, options) {
18710
+ if (!options)
18711
+ options = {};
18712
+ var object = {};
18713
+ if (options.arrays || options.defaults) {
18714
+ object.flyoverInfo = [];
18715
+ object.narrowRoadInfo = [];
18716
+ }
18717
+ if (message.flyoverInfo && message.flyoverInfo.length) {
18718
+ object.flyoverInfo = [];
18719
+ for (var j = 0; j < message.flyoverInfo.length; ++j)
18720
+ object.flyoverInfo[j] = $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo.toObject(message.flyoverInfo[j], options);
18721
+ }
18722
+ if (message.narrowRoadInfo && message.narrowRoadInfo.length) {
18723
+ object.narrowRoadInfo = [];
18724
+ for (var j = 0; j < message.narrowRoadInfo.length; ++j)
18725
+ object.narrowRoadInfo[j] = $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.toObject(message.narrowRoadInfo[j], options);
18726
+ }
18727
+ return object;
18728
+ };
18729
+
18730
+ /**
18731
+ * Converts this PolylineDetails to JSON.
18732
+ * @function toJSON
18733
+ * @memberof google.maps.routing.v2.PolylineDetails
18734
+ * @instance
18735
+ * @returns {Object.<string,*>} JSON object
18736
+ */
18737
+ PolylineDetails.prototype.toJSON = function toJSON() {
18738
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
18739
+ };
18740
+
18741
+ /**
18742
+ * Gets the default type url for PolylineDetails
18743
+ * @function getTypeUrl
18744
+ * @memberof google.maps.routing.v2.PolylineDetails
18745
+ * @static
18746
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
18747
+ * @returns {string} The default type url
18748
+ */
18749
+ PolylineDetails.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
18750
+ if (typeUrlPrefix === undefined) {
18751
+ typeUrlPrefix = "type.googleapis.com";
18752
+ }
18753
+ return typeUrlPrefix + "/google.maps.routing.v2.PolylineDetails";
18754
+ };
18755
+
18756
+ PolylineDetails.PolylinePointIndex = (function() {
18757
+
18758
+ /**
18759
+ * Properties of a PolylinePointIndex.
18760
+ * @memberof google.maps.routing.v2.PolylineDetails
18761
+ * @interface IPolylinePointIndex
18762
+ * @property {number|null} [startIndex] PolylinePointIndex startIndex
18763
+ * @property {number|null} [endIndex] PolylinePointIndex endIndex
18764
+ */
18765
+
18766
+ /**
18767
+ * Constructs a new PolylinePointIndex.
18768
+ * @memberof google.maps.routing.v2.PolylineDetails
18769
+ * @classdesc Represents a PolylinePointIndex.
18770
+ * @implements IPolylinePointIndex
18771
+ * @constructor
18772
+ * @param {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex=} [properties] Properties to set
18773
+ */
18774
+ function PolylinePointIndex(properties) {
18775
+ if (properties)
18776
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
18777
+ if (properties[keys[i]] != null)
18778
+ this[keys[i]] = properties[keys[i]];
18779
+ }
18780
+
18781
+ /**
18782
+ * PolylinePointIndex startIndex.
18783
+ * @member {number|null|undefined} startIndex
18784
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18785
+ * @instance
18786
+ */
18787
+ PolylinePointIndex.prototype.startIndex = null;
18788
+
18789
+ /**
18790
+ * PolylinePointIndex endIndex.
18791
+ * @member {number|null|undefined} endIndex
18792
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18793
+ * @instance
18794
+ */
18795
+ PolylinePointIndex.prototype.endIndex = null;
18796
+
18797
+ // OneOf field names bound to virtual getters and setters
18798
+ var $oneOfFields;
18799
+
18800
+ /**
18801
+ * PolylinePointIndex _startIndex.
18802
+ * @member {"startIndex"|undefined} _startIndex
18803
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18804
+ * @instance
18805
+ */
18806
+ Object.defineProperty(PolylinePointIndex.prototype, "_startIndex", {
18807
+ get: $util.oneOfGetter($oneOfFields = ["startIndex"]),
18808
+ set: $util.oneOfSetter($oneOfFields)
18809
+ });
18810
+
18811
+ /**
18812
+ * PolylinePointIndex _endIndex.
18813
+ * @member {"endIndex"|undefined} _endIndex
18814
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18815
+ * @instance
18816
+ */
18817
+ Object.defineProperty(PolylinePointIndex.prototype, "_endIndex", {
18818
+ get: $util.oneOfGetter($oneOfFields = ["endIndex"]),
18819
+ set: $util.oneOfSetter($oneOfFields)
18820
+ });
18821
+
18822
+ /**
18823
+ * Creates a new PolylinePointIndex instance using the specified properties.
18824
+ * @function create
18825
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18826
+ * @static
18827
+ * @param {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex=} [properties] Properties to set
18828
+ * @returns {google.maps.routing.v2.PolylineDetails.PolylinePointIndex} PolylinePointIndex instance
18829
+ */
18830
+ PolylinePointIndex.create = function create(properties) {
18831
+ return new PolylinePointIndex(properties);
18832
+ };
18833
+
18834
+ /**
18835
+ * Encodes the specified PolylinePointIndex message. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify|verify} messages.
18836
+ * @function encode
18837
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18838
+ * @static
18839
+ * @param {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex} message PolylinePointIndex message or plain object to encode
18840
+ * @param {$protobuf.Writer} [writer] Writer to encode to
18841
+ * @returns {$protobuf.Writer} Writer
18842
+ */
18843
+ PolylinePointIndex.encode = function encode(message, writer) {
18844
+ if (!writer)
18845
+ writer = $Writer.create();
18846
+ if (message.startIndex != null && Object.hasOwnProperty.call(message, "startIndex"))
18847
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.startIndex);
18848
+ if (message.endIndex != null && Object.hasOwnProperty.call(message, "endIndex"))
18849
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.endIndex);
18850
+ return writer;
18851
+ };
18852
+
18853
+ /**
18854
+ * Encodes the specified PolylinePointIndex message, length delimited. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify|verify} messages.
18855
+ * @function encodeDelimited
18856
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18857
+ * @static
18858
+ * @param {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex} message PolylinePointIndex message or plain object to encode
18859
+ * @param {$protobuf.Writer} [writer] Writer to encode to
18860
+ * @returns {$protobuf.Writer} Writer
18861
+ */
18862
+ PolylinePointIndex.encodeDelimited = function encodeDelimited(message, writer) {
18863
+ return this.encode(message, writer).ldelim();
18864
+ };
18865
+
18866
+ /**
18867
+ * Decodes a PolylinePointIndex message from the specified reader or buffer.
18868
+ * @function decode
18869
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18870
+ * @static
18871
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
18872
+ * @param {number} [length] Message length if known beforehand
18873
+ * @returns {google.maps.routing.v2.PolylineDetails.PolylinePointIndex} PolylinePointIndex
18874
+ * @throws {Error} If the payload is not a reader or valid buffer
18875
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
18876
+ */
18877
+ PolylinePointIndex.decode = function decode(reader, length) {
18878
+ if (!(reader instanceof $Reader))
18879
+ reader = $Reader.create(reader);
18880
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex();
18881
+ while (reader.pos < end) {
18882
+ var tag = reader.uint32();
18883
+ switch (tag >>> 3) {
18884
+ case 1: {
18885
+ message.startIndex = reader.int32();
18886
+ break;
18887
+ }
18888
+ case 2: {
18889
+ message.endIndex = reader.int32();
18890
+ break;
18891
+ }
18892
+ default:
18893
+ reader.skipType(tag & 7);
18894
+ break;
18895
+ }
18896
+ }
18897
+ return message;
18898
+ };
18899
+
18900
+ /**
18901
+ * Decodes a PolylinePointIndex message from the specified reader or buffer, length delimited.
18902
+ * @function decodeDelimited
18903
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18904
+ * @static
18905
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
18906
+ * @returns {google.maps.routing.v2.PolylineDetails.PolylinePointIndex} PolylinePointIndex
18907
+ * @throws {Error} If the payload is not a reader or valid buffer
18908
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
18909
+ */
18910
+ PolylinePointIndex.decodeDelimited = function decodeDelimited(reader) {
18911
+ if (!(reader instanceof $Reader))
18912
+ reader = new $Reader(reader);
18913
+ return this.decode(reader, reader.uint32());
18914
+ };
18915
+
18916
+ /**
18917
+ * Verifies a PolylinePointIndex message.
18918
+ * @function verify
18919
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18920
+ * @static
18921
+ * @param {Object.<string,*>} message Plain object to verify
18922
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
18923
+ */
18924
+ PolylinePointIndex.verify = function verify(message) {
18925
+ if (typeof message !== "object" || message === null)
18926
+ return "object expected";
18927
+ var properties = {};
18928
+ if (message.startIndex != null && message.hasOwnProperty("startIndex")) {
18929
+ properties._startIndex = 1;
18930
+ if (!$util.isInteger(message.startIndex))
18931
+ return "startIndex: integer expected";
18932
+ }
18933
+ if (message.endIndex != null && message.hasOwnProperty("endIndex")) {
18934
+ properties._endIndex = 1;
18935
+ if (!$util.isInteger(message.endIndex))
18936
+ return "endIndex: integer expected";
18937
+ }
18938
+ return null;
18939
+ };
18940
+
18941
+ /**
18942
+ * Creates a PolylinePointIndex message from a plain object. Also converts values to their respective internal types.
18943
+ * @function fromObject
18944
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18945
+ * @static
18946
+ * @param {Object.<string,*>} object Plain object
18947
+ * @returns {google.maps.routing.v2.PolylineDetails.PolylinePointIndex} PolylinePointIndex
18948
+ */
18949
+ PolylinePointIndex.fromObject = function fromObject(object) {
18950
+ if (object instanceof $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex)
18951
+ return object;
18952
+ var message = new $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex();
18953
+ if (object.startIndex != null)
18954
+ message.startIndex = object.startIndex | 0;
18955
+ if (object.endIndex != null)
18956
+ message.endIndex = object.endIndex | 0;
18957
+ return message;
18958
+ };
18959
+
18960
+ /**
18961
+ * Creates a plain object from a PolylinePointIndex message. Also converts values to other types if specified.
18962
+ * @function toObject
18963
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18964
+ * @static
18965
+ * @param {google.maps.routing.v2.PolylineDetails.PolylinePointIndex} message PolylinePointIndex
18966
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
18967
+ * @returns {Object.<string,*>} Plain object
18968
+ */
18969
+ PolylinePointIndex.toObject = function toObject(message, options) {
18970
+ if (!options)
18971
+ options = {};
18972
+ var object = {};
18973
+ if (message.startIndex != null && message.hasOwnProperty("startIndex")) {
18974
+ object.startIndex = message.startIndex;
18975
+ if (options.oneofs)
18976
+ object._startIndex = "startIndex";
18977
+ }
18978
+ if (message.endIndex != null && message.hasOwnProperty("endIndex")) {
18979
+ object.endIndex = message.endIndex;
18980
+ if (options.oneofs)
18981
+ object._endIndex = "endIndex";
18982
+ }
18983
+ return object;
18984
+ };
18985
+
18986
+ /**
18987
+ * Converts this PolylinePointIndex to JSON.
18988
+ * @function toJSON
18989
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
18990
+ * @instance
18991
+ * @returns {Object.<string,*>} JSON object
18992
+ */
18993
+ PolylinePointIndex.prototype.toJSON = function toJSON() {
18994
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
18995
+ };
18996
+
18997
+ /**
18998
+ * Gets the default type url for PolylinePointIndex
18999
+ * @function getTypeUrl
19000
+ * @memberof google.maps.routing.v2.PolylineDetails.PolylinePointIndex
19001
+ * @static
19002
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
19003
+ * @returns {string} The default type url
19004
+ */
19005
+ PolylinePointIndex.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
19006
+ if (typeUrlPrefix === undefined) {
19007
+ typeUrlPrefix = "type.googleapis.com";
19008
+ }
19009
+ return typeUrlPrefix + "/google.maps.routing.v2.PolylineDetails.PolylinePointIndex";
19010
+ };
19011
+
19012
+ return PolylinePointIndex;
19013
+ })();
19014
+
19015
+ /**
19016
+ * RoadFeatureState enum.
19017
+ * @name google.maps.routing.v2.PolylineDetails.RoadFeatureState
19018
+ * @enum {number}
19019
+ * @property {number} ROAD_FEATURE_STATE_UNSPECIFIED=0 ROAD_FEATURE_STATE_UNSPECIFIED value
19020
+ * @property {number} EXISTS=1 EXISTS value
19021
+ * @property {number} DOES_NOT_EXIST=2 DOES_NOT_EXIST value
19022
+ */
19023
+ PolylineDetails.RoadFeatureState = (function() {
19024
+ var valuesById = {}, values = Object.create(valuesById);
19025
+ values[valuesById[0] = "ROAD_FEATURE_STATE_UNSPECIFIED"] = 0;
19026
+ values[valuesById[1] = "EXISTS"] = 1;
19027
+ values[valuesById[2] = "DOES_NOT_EXIST"] = 2;
19028
+ return values;
19029
+ })();
19030
+
19031
+ PolylineDetails.FlyoverInfo = (function() {
19032
+
19033
+ /**
19034
+ * Properties of a FlyoverInfo.
19035
+ * @memberof google.maps.routing.v2.PolylineDetails
19036
+ * @interface IFlyoverInfo
19037
+ * @property {google.maps.routing.v2.PolylineDetails.RoadFeatureState|null} [flyoverPresence] FlyoverInfo flyoverPresence
19038
+ * @property {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex|null} [polylinePointIndex] FlyoverInfo polylinePointIndex
19039
+ */
19040
+
19041
+ /**
19042
+ * Constructs a new FlyoverInfo.
19043
+ * @memberof google.maps.routing.v2.PolylineDetails
19044
+ * @classdesc Represents a FlyoverInfo.
19045
+ * @implements IFlyoverInfo
19046
+ * @constructor
19047
+ * @param {google.maps.routing.v2.PolylineDetails.IFlyoverInfo=} [properties] Properties to set
19048
+ */
19049
+ function FlyoverInfo(properties) {
19050
+ if (properties)
19051
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
19052
+ if (properties[keys[i]] != null)
19053
+ this[keys[i]] = properties[keys[i]];
19054
+ }
19055
+
19056
+ /**
19057
+ * FlyoverInfo flyoverPresence.
19058
+ * @member {google.maps.routing.v2.PolylineDetails.RoadFeatureState} flyoverPresence
19059
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19060
+ * @instance
19061
+ */
19062
+ FlyoverInfo.prototype.flyoverPresence = 0;
19063
+
19064
+ /**
19065
+ * FlyoverInfo polylinePointIndex.
19066
+ * @member {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex|null|undefined} polylinePointIndex
19067
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19068
+ * @instance
19069
+ */
19070
+ FlyoverInfo.prototype.polylinePointIndex = null;
19071
+
19072
+ /**
19073
+ * Creates a new FlyoverInfo instance using the specified properties.
19074
+ * @function create
19075
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19076
+ * @static
19077
+ * @param {google.maps.routing.v2.PolylineDetails.IFlyoverInfo=} [properties] Properties to set
19078
+ * @returns {google.maps.routing.v2.PolylineDetails.FlyoverInfo} FlyoverInfo instance
19079
+ */
19080
+ FlyoverInfo.create = function create(properties) {
19081
+ return new FlyoverInfo(properties);
19082
+ };
19083
+
19084
+ /**
19085
+ * Encodes the specified FlyoverInfo message. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.FlyoverInfo.verify|verify} messages.
19086
+ * @function encode
19087
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19088
+ * @static
19089
+ * @param {google.maps.routing.v2.PolylineDetails.IFlyoverInfo} message FlyoverInfo message or plain object to encode
19090
+ * @param {$protobuf.Writer} [writer] Writer to encode to
19091
+ * @returns {$protobuf.Writer} Writer
19092
+ */
19093
+ FlyoverInfo.encode = function encode(message, writer) {
19094
+ if (!writer)
19095
+ writer = $Writer.create();
19096
+ if (message.flyoverPresence != null && Object.hasOwnProperty.call(message, "flyoverPresence"))
19097
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.flyoverPresence);
19098
+ if (message.polylinePointIndex != null && Object.hasOwnProperty.call(message, "polylinePointIndex"))
19099
+ $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
19100
+ return writer;
19101
+ };
19102
+
19103
+ /**
19104
+ * Encodes the specified FlyoverInfo message, length delimited. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.FlyoverInfo.verify|verify} messages.
19105
+ * @function encodeDelimited
19106
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19107
+ * @static
19108
+ * @param {google.maps.routing.v2.PolylineDetails.IFlyoverInfo} message FlyoverInfo message or plain object to encode
19109
+ * @param {$protobuf.Writer} [writer] Writer to encode to
19110
+ * @returns {$protobuf.Writer} Writer
19111
+ */
19112
+ FlyoverInfo.encodeDelimited = function encodeDelimited(message, writer) {
19113
+ return this.encode(message, writer).ldelim();
19114
+ };
19115
+
19116
+ /**
19117
+ * Decodes a FlyoverInfo message from the specified reader or buffer.
19118
+ * @function decode
19119
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19120
+ * @static
19121
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
19122
+ * @param {number} [length] Message length if known beforehand
19123
+ * @returns {google.maps.routing.v2.PolylineDetails.FlyoverInfo} FlyoverInfo
19124
+ * @throws {Error} If the payload is not a reader or valid buffer
19125
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
19126
+ */
19127
+ FlyoverInfo.decode = function decode(reader, length) {
19128
+ if (!(reader instanceof $Reader))
19129
+ reader = $Reader.create(reader);
19130
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo();
19131
+ while (reader.pos < end) {
19132
+ var tag = reader.uint32();
19133
+ switch (tag >>> 3) {
19134
+ case 1: {
19135
+ message.flyoverPresence = reader.int32();
19136
+ break;
19137
+ }
19138
+ case 2: {
19139
+ message.polylinePointIndex = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader, reader.uint32());
19140
+ break;
19141
+ }
19142
+ default:
19143
+ reader.skipType(tag & 7);
19144
+ break;
19145
+ }
19146
+ }
19147
+ return message;
19148
+ };
19149
+
19150
+ /**
19151
+ * Decodes a FlyoverInfo message from the specified reader or buffer, length delimited.
19152
+ * @function decodeDelimited
19153
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19154
+ * @static
19155
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
19156
+ * @returns {google.maps.routing.v2.PolylineDetails.FlyoverInfo} FlyoverInfo
19157
+ * @throws {Error} If the payload is not a reader or valid buffer
19158
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
19159
+ */
19160
+ FlyoverInfo.decodeDelimited = function decodeDelimited(reader) {
19161
+ if (!(reader instanceof $Reader))
19162
+ reader = new $Reader(reader);
19163
+ return this.decode(reader, reader.uint32());
19164
+ };
19165
+
19166
+ /**
19167
+ * Verifies a FlyoverInfo message.
19168
+ * @function verify
19169
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19170
+ * @static
19171
+ * @param {Object.<string,*>} message Plain object to verify
19172
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
19173
+ */
19174
+ FlyoverInfo.verify = function verify(message) {
19175
+ if (typeof message !== "object" || message === null)
19176
+ return "object expected";
19177
+ if (message.flyoverPresence != null && message.hasOwnProperty("flyoverPresence"))
19178
+ switch (message.flyoverPresence) {
19179
+ default:
19180
+ return "flyoverPresence: enum value expected";
19181
+ case 0:
19182
+ case 1:
19183
+ case 2:
19184
+ break;
19185
+ }
19186
+ if (message.polylinePointIndex != null && message.hasOwnProperty("polylinePointIndex")) {
19187
+ var error = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex);
19188
+ if (error)
19189
+ return "polylinePointIndex." + error;
19190
+ }
19191
+ return null;
19192
+ };
19193
+
19194
+ /**
19195
+ * Creates a FlyoverInfo message from a plain object. Also converts values to their respective internal types.
19196
+ * @function fromObject
19197
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19198
+ * @static
19199
+ * @param {Object.<string,*>} object Plain object
19200
+ * @returns {google.maps.routing.v2.PolylineDetails.FlyoverInfo} FlyoverInfo
19201
+ */
19202
+ FlyoverInfo.fromObject = function fromObject(object) {
19203
+ if (object instanceof $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo)
19204
+ return object;
19205
+ var message = new $root.google.maps.routing.v2.PolylineDetails.FlyoverInfo();
19206
+ switch (object.flyoverPresence) {
19207
+ default:
19208
+ if (typeof object.flyoverPresence === "number") {
19209
+ message.flyoverPresence = object.flyoverPresence;
19210
+ break;
19211
+ }
19212
+ break;
19213
+ case "ROAD_FEATURE_STATE_UNSPECIFIED":
19214
+ case 0:
19215
+ message.flyoverPresence = 0;
19216
+ break;
19217
+ case "EXISTS":
19218
+ case 1:
19219
+ message.flyoverPresence = 1;
19220
+ break;
19221
+ case "DOES_NOT_EXIST":
19222
+ case 2:
19223
+ message.flyoverPresence = 2;
19224
+ break;
19225
+ }
19226
+ if (object.polylinePointIndex != null) {
19227
+ if (typeof object.polylinePointIndex !== "object")
19228
+ throw TypeError(".google.maps.routing.v2.PolylineDetails.FlyoverInfo.polylinePointIndex: object expected");
19229
+ message.polylinePointIndex = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex);
19230
+ }
19231
+ return message;
19232
+ };
19233
+
19234
+ /**
19235
+ * Creates a plain object from a FlyoverInfo message. Also converts values to other types if specified.
19236
+ * @function toObject
19237
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19238
+ * @static
19239
+ * @param {google.maps.routing.v2.PolylineDetails.FlyoverInfo} message FlyoverInfo
19240
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
19241
+ * @returns {Object.<string,*>} Plain object
19242
+ */
19243
+ FlyoverInfo.toObject = function toObject(message, options) {
19244
+ if (!options)
19245
+ options = {};
19246
+ var object = {};
19247
+ if (options.defaults) {
19248
+ object.flyoverPresence = options.enums === String ? "ROAD_FEATURE_STATE_UNSPECIFIED" : 0;
19249
+ object.polylinePointIndex = null;
19250
+ }
19251
+ if (message.flyoverPresence != null && message.hasOwnProperty("flyoverPresence"))
19252
+ object.flyoverPresence = options.enums === String ? $root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.flyoverPresence] === undefined ? message.flyoverPresence : $root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.flyoverPresence] : message.flyoverPresence;
19253
+ if (message.polylinePointIndex != null && message.hasOwnProperty("polylinePointIndex"))
19254
+ object.polylinePointIndex = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex, options);
19255
+ return object;
19256
+ };
19257
+
19258
+ /**
19259
+ * Converts this FlyoverInfo to JSON.
19260
+ * @function toJSON
19261
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19262
+ * @instance
19263
+ * @returns {Object.<string,*>} JSON object
19264
+ */
19265
+ FlyoverInfo.prototype.toJSON = function toJSON() {
19266
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
19267
+ };
19268
+
19269
+ /**
19270
+ * Gets the default type url for FlyoverInfo
19271
+ * @function getTypeUrl
19272
+ * @memberof google.maps.routing.v2.PolylineDetails.FlyoverInfo
19273
+ * @static
19274
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
19275
+ * @returns {string} The default type url
19276
+ */
19277
+ FlyoverInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
19278
+ if (typeUrlPrefix === undefined) {
19279
+ typeUrlPrefix = "type.googleapis.com";
19280
+ }
19281
+ return typeUrlPrefix + "/google.maps.routing.v2.PolylineDetails.FlyoverInfo";
19282
+ };
19283
+
19284
+ return FlyoverInfo;
19285
+ })();
19286
+
19287
+ PolylineDetails.NarrowRoadInfo = (function() {
19288
+
19289
+ /**
19290
+ * Properties of a NarrowRoadInfo.
19291
+ * @memberof google.maps.routing.v2.PolylineDetails
19292
+ * @interface INarrowRoadInfo
19293
+ * @property {google.maps.routing.v2.PolylineDetails.RoadFeatureState|null} [narrowRoadPresence] NarrowRoadInfo narrowRoadPresence
19294
+ * @property {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex|null} [polylinePointIndex] NarrowRoadInfo polylinePointIndex
19295
+ */
19296
+
19297
+ /**
19298
+ * Constructs a new NarrowRoadInfo.
19299
+ * @memberof google.maps.routing.v2.PolylineDetails
19300
+ * @classdesc Represents a NarrowRoadInfo.
19301
+ * @implements INarrowRoadInfo
19302
+ * @constructor
19303
+ * @param {google.maps.routing.v2.PolylineDetails.INarrowRoadInfo=} [properties] Properties to set
19304
+ */
19305
+ function NarrowRoadInfo(properties) {
19306
+ if (properties)
19307
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
19308
+ if (properties[keys[i]] != null)
19309
+ this[keys[i]] = properties[keys[i]];
19310
+ }
19311
+
19312
+ /**
19313
+ * NarrowRoadInfo narrowRoadPresence.
19314
+ * @member {google.maps.routing.v2.PolylineDetails.RoadFeatureState} narrowRoadPresence
19315
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19316
+ * @instance
19317
+ */
19318
+ NarrowRoadInfo.prototype.narrowRoadPresence = 0;
19319
+
19320
+ /**
19321
+ * NarrowRoadInfo polylinePointIndex.
19322
+ * @member {google.maps.routing.v2.PolylineDetails.IPolylinePointIndex|null|undefined} polylinePointIndex
19323
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19324
+ * @instance
19325
+ */
19326
+ NarrowRoadInfo.prototype.polylinePointIndex = null;
19327
+
19328
+ /**
19329
+ * Creates a new NarrowRoadInfo instance using the specified properties.
19330
+ * @function create
19331
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19332
+ * @static
19333
+ * @param {google.maps.routing.v2.PolylineDetails.INarrowRoadInfo=} [properties] Properties to set
19334
+ * @returns {google.maps.routing.v2.PolylineDetails.NarrowRoadInfo} NarrowRoadInfo instance
19335
+ */
19336
+ NarrowRoadInfo.create = function create(properties) {
19337
+ return new NarrowRoadInfo(properties);
19338
+ };
19339
+
19340
+ /**
19341
+ * Encodes the specified NarrowRoadInfo message. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.verify|verify} messages.
19342
+ * @function encode
19343
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19344
+ * @static
19345
+ * @param {google.maps.routing.v2.PolylineDetails.INarrowRoadInfo} message NarrowRoadInfo message or plain object to encode
19346
+ * @param {$protobuf.Writer} [writer] Writer to encode to
19347
+ * @returns {$protobuf.Writer} Writer
19348
+ */
19349
+ NarrowRoadInfo.encode = function encode(message, writer) {
19350
+ if (!writer)
19351
+ writer = $Writer.create();
19352
+ if (message.narrowRoadPresence != null && Object.hasOwnProperty.call(message, "narrowRoadPresence"))
19353
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.narrowRoadPresence);
19354
+ if (message.polylinePointIndex != null && Object.hasOwnProperty.call(message, "polylinePointIndex"))
19355
+ $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.encode(message.polylinePointIndex, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
19356
+ return writer;
19357
+ };
19358
+
19359
+ /**
19360
+ * Encodes the specified NarrowRoadInfo message, length delimited. Does not implicitly {@link google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.verify|verify} messages.
19361
+ * @function encodeDelimited
19362
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19363
+ * @static
19364
+ * @param {google.maps.routing.v2.PolylineDetails.INarrowRoadInfo} message NarrowRoadInfo message or plain object to encode
19365
+ * @param {$protobuf.Writer} [writer] Writer to encode to
19366
+ * @returns {$protobuf.Writer} Writer
19367
+ */
19368
+ NarrowRoadInfo.encodeDelimited = function encodeDelimited(message, writer) {
19369
+ return this.encode(message, writer).ldelim();
19370
+ };
19371
+
19372
+ /**
19373
+ * Decodes a NarrowRoadInfo message from the specified reader or buffer.
19374
+ * @function decode
19375
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19376
+ * @static
19377
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
19378
+ * @param {number} [length] Message length if known beforehand
19379
+ * @returns {google.maps.routing.v2.PolylineDetails.NarrowRoadInfo} NarrowRoadInfo
19380
+ * @throws {Error} If the payload is not a reader or valid buffer
19381
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
19382
+ */
19383
+ NarrowRoadInfo.decode = function decode(reader, length) {
19384
+ if (!(reader instanceof $Reader))
19385
+ reader = $Reader.create(reader);
19386
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo();
19387
+ while (reader.pos < end) {
19388
+ var tag = reader.uint32();
19389
+ switch (tag >>> 3) {
19390
+ case 1: {
19391
+ message.narrowRoadPresence = reader.int32();
19392
+ break;
19393
+ }
19394
+ case 2: {
19395
+ message.polylinePointIndex = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.decode(reader, reader.uint32());
19396
+ break;
19397
+ }
19398
+ default:
19399
+ reader.skipType(tag & 7);
19400
+ break;
19401
+ }
19402
+ }
19403
+ return message;
19404
+ };
19405
+
19406
+ /**
19407
+ * Decodes a NarrowRoadInfo message from the specified reader or buffer, length delimited.
19408
+ * @function decodeDelimited
19409
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19410
+ * @static
19411
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
19412
+ * @returns {google.maps.routing.v2.PolylineDetails.NarrowRoadInfo} NarrowRoadInfo
19413
+ * @throws {Error} If the payload is not a reader or valid buffer
19414
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
19415
+ */
19416
+ NarrowRoadInfo.decodeDelimited = function decodeDelimited(reader) {
19417
+ if (!(reader instanceof $Reader))
19418
+ reader = new $Reader(reader);
19419
+ return this.decode(reader, reader.uint32());
19420
+ };
19421
+
19422
+ /**
19423
+ * Verifies a NarrowRoadInfo message.
19424
+ * @function verify
19425
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19426
+ * @static
19427
+ * @param {Object.<string,*>} message Plain object to verify
19428
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
19429
+ */
19430
+ NarrowRoadInfo.verify = function verify(message) {
19431
+ if (typeof message !== "object" || message === null)
19432
+ return "object expected";
19433
+ if (message.narrowRoadPresence != null && message.hasOwnProperty("narrowRoadPresence"))
19434
+ switch (message.narrowRoadPresence) {
19435
+ default:
19436
+ return "narrowRoadPresence: enum value expected";
19437
+ case 0:
19438
+ case 1:
19439
+ case 2:
19440
+ break;
19441
+ }
19442
+ if (message.polylinePointIndex != null && message.hasOwnProperty("polylinePointIndex")) {
19443
+ var error = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.verify(message.polylinePointIndex);
19444
+ if (error)
19445
+ return "polylinePointIndex." + error;
19446
+ }
19447
+ return null;
19448
+ };
19449
+
19450
+ /**
19451
+ * Creates a NarrowRoadInfo message from a plain object. Also converts values to their respective internal types.
19452
+ * @function fromObject
19453
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19454
+ * @static
19455
+ * @param {Object.<string,*>} object Plain object
19456
+ * @returns {google.maps.routing.v2.PolylineDetails.NarrowRoadInfo} NarrowRoadInfo
19457
+ */
19458
+ NarrowRoadInfo.fromObject = function fromObject(object) {
19459
+ if (object instanceof $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo)
19460
+ return object;
19461
+ var message = new $root.google.maps.routing.v2.PolylineDetails.NarrowRoadInfo();
19462
+ switch (object.narrowRoadPresence) {
19463
+ default:
19464
+ if (typeof object.narrowRoadPresence === "number") {
19465
+ message.narrowRoadPresence = object.narrowRoadPresence;
19466
+ break;
19467
+ }
19468
+ break;
19469
+ case "ROAD_FEATURE_STATE_UNSPECIFIED":
19470
+ case 0:
19471
+ message.narrowRoadPresence = 0;
19472
+ break;
19473
+ case "EXISTS":
19474
+ case 1:
19475
+ message.narrowRoadPresence = 1;
19476
+ break;
19477
+ case "DOES_NOT_EXIST":
19478
+ case 2:
19479
+ message.narrowRoadPresence = 2;
19480
+ break;
19481
+ }
19482
+ if (object.polylinePointIndex != null) {
19483
+ if (typeof object.polylinePointIndex !== "object")
19484
+ throw TypeError(".google.maps.routing.v2.PolylineDetails.NarrowRoadInfo.polylinePointIndex: object expected");
19485
+ message.polylinePointIndex = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.fromObject(object.polylinePointIndex);
19486
+ }
19487
+ return message;
19488
+ };
19489
+
19490
+ /**
19491
+ * Creates a plain object from a NarrowRoadInfo message. Also converts values to other types if specified.
19492
+ * @function toObject
19493
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19494
+ * @static
19495
+ * @param {google.maps.routing.v2.PolylineDetails.NarrowRoadInfo} message NarrowRoadInfo
19496
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
19497
+ * @returns {Object.<string,*>} Plain object
19498
+ */
19499
+ NarrowRoadInfo.toObject = function toObject(message, options) {
19500
+ if (!options)
19501
+ options = {};
19502
+ var object = {};
19503
+ if (options.defaults) {
19504
+ object.narrowRoadPresence = options.enums === String ? "ROAD_FEATURE_STATE_UNSPECIFIED" : 0;
19505
+ object.polylinePointIndex = null;
19506
+ }
19507
+ if (message.narrowRoadPresence != null && message.hasOwnProperty("narrowRoadPresence"))
19508
+ object.narrowRoadPresence = options.enums === String ? $root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.narrowRoadPresence] === undefined ? message.narrowRoadPresence : $root.google.maps.routing.v2.PolylineDetails.RoadFeatureState[message.narrowRoadPresence] : message.narrowRoadPresence;
19509
+ if (message.polylinePointIndex != null && message.hasOwnProperty("polylinePointIndex"))
19510
+ object.polylinePointIndex = $root.google.maps.routing.v2.PolylineDetails.PolylinePointIndex.toObject(message.polylinePointIndex, options);
19511
+ return object;
19512
+ };
19513
+
19514
+ /**
19515
+ * Converts this NarrowRoadInfo to JSON.
19516
+ * @function toJSON
19517
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19518
+ * @instance
19519
+ * @returns {Object.<string,*>} JSON object
19520
+ */
19521
+ NarrowRoadInfo.prototype.toJSON = function toJSON() {
19522
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
19523
+ };
19524
+
19525
+ /**
19526
+ * Gets the default type url for NarrowRoadInfo
19527
+ * @function getTypeUrl
19528
+ * @memberof google.maps.routing.v2.PolylineDetails.NarrowRoadInfo
19529
+ * @static
19530
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
19531
+ * @returns {string} The default type url
19532
+ */
19533
+ NarrowRoadInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
19534
+ if (typeUrlPrefix === undefined) {
19535
+ typeUrlPrefix = "type.googleapis.com";
19536
+ }
19537
+ return typeUrlPrefix + "/google.maps.routing.v2.PolylineDetails.NarrowRoadInfo";
19538
+ };
19539
+
19540
+ return NarrowRoadInfo;
19541
+ })();
19542
+
19543
+ return PolylineDetails;
19544
+ })();
19545
+
18490
19546
  v2.Route = (function() {
18491
19547
 
18492
19548
  /**
@@ -18506,6 +19562,7 @@
18506
19562
  * @property {Array.<number>|null} [optimizedIntermediateWaypointIndex] Route optimizedIntermediateWaypointIndex
18507
19563
  * @property {google.maps.routing.v2.Route.IRouteLocalizedValues|null} [localizedValues] Route localizedValues
18508
19564
  * @property {string|null} [routeToken] Route routeToken
19565
+ * @property {google.maps.routing.v2.IPolylineDetails|null} [polylineDetails] Route polylineDetails
18509
19566
  */
18510
19567
 
18511
19568
  /**
@@ -18631,6 +19688,14 @@
18631
19688
  */
18632
19689
  Route.prototype.routeToken = "";
18633
19690
 
19691
+ /**
19692
+ * Route polylineDetails.
19693
+ * @member {google.maps.routing.v2.IPolylineDetails|null|undefined} polylineDetails
19694
+ * @memberof google.maps.routing.v2.Route
19695
+ * @instance
19696
+ */
19697
+ Route.prototype.polylineDetails = null;
19698
+
18634
19699
  /**
18635
19700
  * Creates a new Route instance using the specified properties.
18636
19701
  * @function create
@@ -18691,6 +19756,8 @@
18691
19756
  writer.int32(message.routeLabels[i]);
18692
19757
  writer.ldelim();
18693
19758
  }
19759
+ if (message.polylineDetails != null && Object.hasOwnProperty.call(message, "polylineDetails"))
19760
+ $root.google.maps.routing.v2.PolylineDetails.encode(message.polylineDetails, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim();
18694
19761
  return writer;
18695
19762
  };
18696
19763
 
@@ -18795,6 +19862,10 @@
18795
19862
  message.routeToken = reader.string();
18796
19863
  break;
18797
19864
  }
19865
+ case 14: {
19866
+ message.polylineDetails = $root.google.maps.routing.v2.PolylineDetails.decode(reader, reader.uint32());
19867
+ break;
19868
+ }
18798
19869
  default:
18799
19870
  reader.skipType(tag & 7);
18800
19871
  break;
@@ -18841,6 +19912,7 @@
18841
19912
  case 1:
18842
19913
  case 2:
18843
19914
  case 3:
19915
+ case 4:
18844
19916
  break;
18845
19917
  }
18846
19918
  }
@@ -18906,6 +19978,11 @@
18906
19978
  if (message.routeToken != null && message.hasOwnProperty("routeToken"))
18907
19979
  if (!$util.isString(message.routeToken))
18908
19980
  return "routeToken: string expected";
19981
+ if (message.polylineDetails != null && message.hasOwnProperty("polylineDetails")) {
19982
+ var error = $root.google.maps.routing.v2.PolylineDetails.verify(message.polylineDetails);
19983
+ if (error)
19984
+ return "polylineDetails." + error;
19985
+ }
18909
19986
  return null;
18910
19987
  };
18911
19988
 
@@ -18948,6 +20025,10 @@
18948
20025
  case 3:
18949
20026
  message.routeLabels[i] = 3;
18950
20027
  break;
20028
+ case "SHORTER_DISTANCE":
20029
+ case 4:
20030
+ message.routeLabels[i] = 4;
20031
+ break;
18951
20032
  }
18952
20033
  }
18953
20034
  if (object.legs) {
@@ -19010,6 +20091,11 @@
19010
20091
  }
19011
20092
  if (object.routeToken != null)
19012
20093
  message.routeToken = String(object.routeToken);
20094
+ if (object.polylineDetails != null) {
20095
+ if (typeof object.polylineDetails !== "object")
20096
+ throw TypeError(".google.maps.routing.v2.Route.polylineDetails: object expected");
20097
+ message.polylineDetails = $root.google.maps.routing.v2.PolylineDetails.fromObject(object.polylineDetails);
20098
+ }
19013
20099
  return message;
19014
20100
  };
19015
20101
 
@@ -19042,6 +20128,7 @@
19042
20128
  object.travelAdvisory = null;
19043
20129
  object.localizedValues = null;
19044
20130
  object.routeToken = "";
20131
+ object.polylineDetails = null;
19045
20132
  }
19046
20133
  if (message.legs && message.legs.length) {
19047
20134
  object.legs = [];
@@ -19081,6 +20168,8 @@
19081
20168
  for (var j = 0; j < message.routeLabels.length; ++j)
19082
20169
  object.routeLabels[j] = options.enums === String ? $root.google.maps.routing.v2.RouteLabel[message.routeLabels[j]] === undefined ? message.routeLabels[j] : $root.google.maps.routing.v2.RouteLabel[message.routeLabels[j]] : message.routeLabels[j];
19083
20170
  }
20171
+ if (message.polylineDetails != null && message.hasOwnProperty("polylineDetails"))
20172
+ object.polylineDetails = $root.google.maps.routing.v2.PolylineDetails.toObject(message.polylineDetails, options);
19084
20173
  return object;
19085
20174
  };
19086
20175
 
@@ -23165,6 +24254,7 @@
23165
24254
  * @property {number} DEFAULT_ROUTE=1 DEFAULT_ROUTE value
23166
24255
  * @property {number} DEFAULT_ROUTE_ALTERNATE=2 DEFAULT_ROUTE_ALTERNATE value
23167
24256
  * @property {number} FUEL_EFFICIENT=3 FUEL_EFFICIENT value
24257
+ * @property {number} SHORTER_DISTANCE=4 SHORTER_DISTANCE value
23168
24258
  */
23169
24259
  v2.RouteLabel = (function() {
23170
24260
  var valuesById = {}, values = Object.create(valuesById);
@@ -23172,6 +24262,7 @@
23172
24262
  values[valuesById[1] = "DEFAULT_ROUTE"] = 1;
23173
24263
  values[valuesById[2] = "DEFAULT_ROUTE_ALTERNATE"] = 2;
23174
24264
  values[valuesById[3] = "FUEL_EFFICIENT"] = 3;
24265
+ values[valuesById[4] = "SHORTER_DISTANCE"] = 4;
23175
24266
  return values;
23176
24267
  })();
23177
24268
 
@@ -27021,6 +28112,7 @@
27021
28112
  return "requestedReferenceRoutes: enum value[] expected";
27022
28113
  case 0:
27023
28114
  case 1:
28115
+ case 2:
27024
28116
  break;
27025
28117
  }
27026
28118
  }
@@ -27036,6 +28128,8 @@
27036
28128
  case 2:
27037
28129
  case 3:
27038
28130
  case 4:
28131
+ case 7:
28132
+ case 8:
27039
28133
  break;
27040
28134
  }
27041
28135
  }
@@ -27247,6 +28341,10 @@
27247
28341
  case 1:
27248
28342
  message.requestedReferenceRoutes[i] = 1;
27249
28343
  break;
28344
+ case "SHORTER_DISTANCE":
28345
+ case 2:
28346
+ message.requestedReferenceRoutes[i] = 2;
28347
+ break;
27250
28348
  }
27251
28349
  }
27252
28350
  if (object.extraComputations) {
@@ -27280,6 +28378,14 @@
27280
28378
  case 4:
27281
28379
  message.extraComputations[i] = 4;
27282
28380
  break;
28381
+ case "FLYOVER_INFO_ON_POLYLINE":
28382
+ case 7:
28383
+ message.extraComputations[i] = 7;
28384
+ break;
28385
+ case "NARROW_ROAD_INFO_ON_POLYLINE":
28386
+ case 8:
28387
+ message.extraComputations[i] = 8;
28388
+ break;
27283
28389
  }
27284
28390
  }
27285
28391
  switch (object.trafficModel) {
@@ -27432,11 +28538,13 @@
27432
28538
  * @enum {number}
27433
28539
  * @property {number} REFERENCE_ROUTE_UNSPECIFIED=0 REFERENCE_ROUTE_UNSPECIFIED value
27434
28540
  * @property {number} FUEL_EFFICIENT=1 FUEL_EFFICIENT value
28541
+ * @property {number} SHORTER_DISTANCE=2 SHORTER_DISTANCE value
27435
28542
  */
27436
28543
  ComputeRoutesRequest.ReferenceRoute = (function() {
27437
28544
  var valuesById = {}, values = Object.create(valuesById);
27438
28545
  values[valuesById[0] = "REFERENCE_ROUTE_UNSPECIFIED"] = 0;
27439
28546
  values[valuesById[1] = "FUEL_EFFICIENT"] = 1;
28547
+ values[valuesById[2] = "SHORTER_DISTANCE"] = 2;
27440
28548
  return values;
27441
28549
  })();
27442
28550
 
@@ -27449,6 +28557,8 @@
27449
28557
  * @property {number} FUEL_CONSUMPTION=2 FUEL_CONSUMPTION value
27450
28558
  * @property {number} TRAFFIC_ON_POLYLINE=3 TRAFFIC_ON_POLYLINE value
27451
28559
  * @property {number} HTML_FORMATTED_NAVIGATION_INSTRUCTIONS=4 HTML_FORMATTED_NAVIGATION_INSTRUCTIONS value
28560
+ * @property {number} FLYOVER_INFO_ON_POLYLINE=7 FLYOVER_INFO_ON_POLYLINE value
28561
+ * @property {number} NARROW_ROAD_INFO_ON_POLYLINE=8 NARROW_ROAD_INFO_ON_POLYLINE value
27452
28562
  */
27453
28563
  ComputeRoutesRequest.ExtraComputation = (function() {
27454
28564
  var valuesById = {}, values = Object.create(valuesById);
@@ -27457,6 +28567,8 @@
27457
28567
  values[valuesById[2] = "FUEL_CONSUMPTION"] = 2;
27458
28568
  values[valuesById[3] = "TRAFFIC_ON_POLYLINE"] = 3;
27459
28569
  values[valuesById[4] = "HTML_FORMATTED_NAVIGATION_INSTRUCTIONS"] = 4;
28570
+ values[valuesById[7] = "FLYOVER_INFO_ON_POLYLINE"] = 7;
28571
+ values[valuesById[8] = "NARROW_ROAD_INFO_ON_POLYLINE"] = 8;
27460
28572
  return values;
27461
28573
  })();
27462
28574
 
@@ -30754,6 +31866,34 @@
30754
31866
  */
30755
31867
  var api = {};
30756
31868
 
31869
+ /**
31870
+ * FieldBehavior enum.
31871
+ * @name google.api.FieldBehavior
31872
+ * @enum {number}
31873
+ * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value
31874
+ * @property {number} OPTIONAL=1 OPTIONAL value
31875
+ * @property {number} REQUIRED=2 REQUIRED value
31876
+ * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value
31877
+ * @property {number} INPUT_ONLY=4 INPUT_ONLY value
31878
+ * @property {number} IMMUTABLE=5 IMMUTABLE value
31879
+ * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value
31880
+ * @property {number} NON_EMPTY_DEFAULT=7 NON_EMPTY_DEFAULT value
31881
+ * @property {number} IDENTIFIER=8 IDENTIFIER value
31882
+ */
31883
+ api.FieldBehavior = (function() {
31884
+ var valuesById = {}, values = Object.create(valuesById);
31885
+ values[valuesById[0] = "FIELD_BEHAVIOR_UNSPECIFIED"] = 0;
31886
+ values[valuesById[1] = "OPTIONAL"] = 1;
31887
+ values[valuesById[2] = "REQUIRED"] = 2;
31888
+ values[valuesById[3] = "OUTPUT_ONLY"] = 3;
31889
+ values[valuesById[4] = "INPUT_ONLY"] = 4;
31890
+ values[valuesById[5] = "IMMUTABLE"] = 5;
31891
+ values[valuesById[6] = "UNORDERED_LIST"] = 6;
31892
+ values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7;
31893
+ values[valuesById[8] = "IDENTIFIER"] = 8;
31894
+ return values;
31895
+ })();
31896
+
30757
31897
  api.Http = (function() {
30758
31898
 
30759
31899
  /**
@@ -35646,34 +36786,6 @@
35646
36786
  return values;
35647
36787
  })();
35648
36788
 
35649
- /**
35650
- * FieldBehavior enum.
35651
- * @name google.api.FieldBehavior
35652
- * @enum {number}
35653
- * @property {number} FIELD_BEHAVIOR_UNSPECIFIED=0 FIELD_BEHAVIOR_UNSPECIFIED value
35654
- * @property {number} OPTIONAL=1 OPTIONAL value
35655
- * @property {number} REQUIRED=2 REQUIRED value
35656
- * @property {number} OUTPUT_ONLY=3 OUTPUT_ONLY value
35657
- * @property {number} INPUT_ONLY=4 INPUT_ONLY value
35658
- * @property {number} IMMUTABLE=5 IMMUTABLE value
35659
- * @property {number} UNORDERED_LIST=6 UNORDERED_LIST value
35660
- * @property {number} NON_EMPTY_DEFAULT=7 NON_EMPTY_DEFAULT value
35661
- * @property {number} IDENTIFIER=8 IDENTIFIER value
35662
- */
35663
- api.FieldBehavior = (function() {
35664
- var valuesById = {}, values = Object.create(valuesById);
35665
- values[valuesById[0] = "FIELD_BEHAVIOR_UNSPECIFIED"] = 0;
35666
- values[valuesById[1] = "OPTIONAL"] = 1;
35667
- values[valuesById[2] = "REQUIRED"] = 2;
35668
- values[valuesById[3] = "OUTPUT_ONLY"] = 3;
35669
- values[valuesById[4] = "INPUT_ONLY"] = 4;
35670
- values[valuesById[5] = "IMMUTABLE"] = 5;
35671
- values[valuesById[6] = "UNORDERED_LIST"] = 6;
35672
- values[valuesById[7] = "NON_EMPTY_DEFAULT"] = 7;
35673
- values[valuesById[8] = "IDENTIFIER"] = 8;
35674
- return values;
35675
- })();
35676
-
35677
36789
  return api;
35678
36790
  })();
35679
36791