package com.mapzen.pelias;
import com.mapzen.pelias.gson.Result;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
/**
* HTTP interface for {@link Pelias}.
*/
public interface PeliasService {
/**
* Asynchronously request autocomplete results given a query and focus point.
*/
@GET("/v1/autocomplete") Call<Result> getSuggest(@Query("text") String query,
@Query("focus.point.lat") double lat,
@Query("focus.point.lon") double lon);
/**
* Asynchronously request autocomplete results given a query andfocus point.
* Limit results by layer and country.
*/
@GET("/v1/autocomplete") Call<Result> getSuggest(@Query("text") String query,
@Query("focus.point.lat") double lat,
@Query("focus.point.lon") double lon,
@Query("layers") String layers,
@Query("boundary.country") String country,
@Query("sources") String source);
/**
* Asynchronously request search results given a query and bounding box.
*/
@GET("/v1/search") Call<Result> getSearch(@Query("text") String query,
@Query("focus.viewport.min_lat") double minLat,
@Query("focus.viewport.min_lon") double minLon,
@Query("focus.viewport.max_lat") double maxLat,
@Query("focus.viewport.max_lon") double maxLon);
/**
* Asynchronously request search results given a query and focus point.
*/
@GET("/v1/search") Call<Result> getSearch(@Query("text") String query,
@Query("focus.point.lat") double lat,
@Query("focus.point.lon") double lon);
/**
* Asynchronously issue reverse geocode request.
*/
@GET("/v1/reverse") Call<Result> getReverse(@Query("point.lat") double lat,
@Query("point.lon") double lon);
/**
* Asynchronously issue reverse geocode request.
*/
@GET("/v1/reverse") Call<Result> getReverse(@Query("point.lat") double lat,
@Query("point.lon") double lon,
@Query("sources") String sources);
/**
* Asynchronously request more information about places given their global unique identifiers.
*/
@GET("/v1/place") Call<Result> getPlace(@Query("ids") String ids);
}