''' Maps ======= The :class:`Maps` creates a client for accessing the default Maps API. Holds features such as opening a location by address & latitude/longitude, create queries, or find directions between two points Simple Examples --------------- Perform a search:: >>> from plyer import maps >>> maps.search('Mexican Restaurant') >>> maps.search('Taco Bell', latitude=38.5810606, longitude=-121.493895) Get directions to a location:: >>> from plyer import maps >>> maps.route('Cupertino', 'San Francisco') >>> maps.route('41.9156316,-72.6130726', '42.65228271484,-73.7577362060') View a specific location:: >>> from plyer import maps >>> maps.open_by_address('25 Leshin Lane, Hightstown, NJ') >>> maps.open_by_lat_long(30.451468, -91.187149) >>> maps.open_by_lat_long(30.451468, -91.187149, name='Home') Supported Platforms ------------------- macOS, iOS --------------- ''' class Maps: ''' Maps facade. ''' def open_by_address(self, address, **kwargs): ''' Open the specificed location by address in the default Maps API ''' self._open_by_address(address, **kwargs) def open_by_lat_long(self, latitude, longitude, **kwargs): ''' Open the specificed location by latitude & longitude coordinates in the default Maps API ''' self._open_by_lat_long(latitude, longitude, **kwargs) def search(self, query, **kwargs): ''' The query. This parameter is treated as if its value had been typed into the Maps search field by the user. Note that query=* is not supported ''' self._search(query, **kwargs) def route(self, saddr, daddr, **kwargs): ''' To provide navigation directions from one location to another. :param saddr: The source address to be used as the starting point for directions. :param daddr: The destination address to be used as the destination point for directions. ''' self._route(saddr, daddr, **kwargs) def _open_by_address(self, address, **kwargs): raise NotImplementedError() def _open_by_lat_long(self, latitude, longitude, **kwargs): raise NotImplementedError() def _search(self, query, **kwargs): raise NotImplementedError() def _route(self, saddr, daddr, **kwargs): raise NotImplementedError()