blob: b8d18b530ccf9270a7cd0fa974ff4101887df34b [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// All of the types that follow are simple mappings of the types defined by the
// "Google Maps JavaScript API v3" defined here:
// https://developers.google.com/maps/documentation/javascript/geocoding
[DartPackage="mojo_services"]
module mojo;
import "location/public/interfaces/location.mojom";
struct LocationType {
const string ROOFTOP = "ROOFTOP";
const string RANGE_INTERPOLATED = "RANGE_INTERPOLATED";
const string GEOMETRIC_CENTER = "GEOMETRIC_CENTER";
const string APPROXIMATE = "APPROXIMATE";
};
struct Bounds {
Location northeast;
Location southwest;
};
struct ComponentRestrictions {
string? administrative_area;
string? country;
string? locality;
string? postal_code;
string? route;
};
struct Options {
ComponentRestrictions? restrictions;
Location? location;
string? region;
};
struct Geometry {
Location location;
LocationType location_type;
Bounds viewport;
Bounds? bounds;
};
struct Result {
bool partial_match;
Geometry geometry;
string formatted_address;
array<string> types;
// TBD address_components
};
struct Status {
const string OK = "OK";
const string ZERO_RESULTS = "ZERO_RESULTS";
const string OVER_QUERY_LIMIT = "OVER_QUERY_LIMIT";
const string REQUEST_DENIED = "REQUEST_DENIED";
const string INVALID_REQUEST = "INVALID_REQUEST";
};
interface Geocoder {
AddressToLocation(string address, Options? options) => (string status, array<Result>? results);
LocationToAddress(Location location, Options? options) => (string status, array<Result>? results);
};