2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include "mapzen_queue.h"
19 #include "mapzen_debug.h"
20 #include "mapzen_util.h"
25 #include "mapzen_api.hpp"
26 #include "mapzen_server_private.h"
27 #include "tangram_view.hpp"
31 int ret = mapzen_init_queue();
38 int ret = mapzen_deinit_queue();
43 int mapzen_geocode(mapzen_geocode_req_s *req_details, mapzen_geocode_cb callback, int request_id, void *user_data)
45 int ret = MAPZEN_ERROR_NONE;
46 ret = start_geocode_service(req_details, callback, request_id, user_data);
51 int mapzen_cancel_request(int request_id)
53 int ret = remove_from_request_list(request_id);
58 int mapzen_reverse_geocode(mapzen_revgeocode_req_s *req_details, mapzen_reverse_geocode_cb callback, int request_id, void *user_data)
60 int ret = MAPZEN_ERROR_NONE;
61 ret = start_reversegeocode_service(req_details, callback, request_id, user_data);
66 int mapzen_search_place(mapzen_search_req_s *req_details, mapzen_place_search_cb callback, int request_id, void *user_data)
68 int ret = MAPZEN_ERROR_NONE;
69 ret = start_place_service(req_details, callback, request_id, user_data);
74 int mapzen_get_place_details(mapzen_get_details_req_s *req_details, mapzen_get_place_details_cb callback, int request_id, void *user_data)
76 int ret = MAPZEN_ERROR_NONE;
77 ret = start_place_details_service(req_details, callback, request_id, user_data);
82 int mapzen_search_place_list(mapzen_search_req_s *req_details, mapzen_place_list_search_cb callback, int request_id, void *user_data)
84 int ret = MAPZEN_ERROR_NONE;
85 ret = start_places_list_service(req_details, callback, request_id, user_data);
90 int mapzen_start_route(mapzen_route_req_s *req_details, mapzen_route_cb callback, int request_id, void *user_data)
92 int ret = MAPZEN_ERROR_NONE;
93 ret = start_route_service(req_details, callback, request_id, user_data);
98 int mapzen_create_map_view(maps_view_h hView, maps_plugin_map_view_ready_cb pCbFunc, const char* providerKey)
100 TangramView* tv = new TangramView();
102 return MAPZEN_ERROR_OUT_OF_MEMORY;
104 TangramView* old_tv = nullptr;
105 maps_view_get_maps_plugin_view_handle(hView, (void**)&old_tv);
106 maps_view_set_maps_plugin_view_handle(hView, tv);
110 return tv->create(hView, pCbFunc, providerKey);
113 int mapzen_destroy_map_view(maps_view_h hView)
115 TangramView* tv = nullptr;
116 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
117 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
118 if (error == MAPZEN_ERROR_NONE && tv) {
119 maps_view_set_maps_plugin_view_handle(hView, nullptr);
120 error = tv->destroy(hView);
125 int mapzen_render_map(maps_view_h hView, const maps_coordinates_h coordinates, double zoom_factor, double rotation_angle)
127 TangramView* tv = nullptr;
128 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
129 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
130 if (error == MAPZEN_ERROR_NONE && tv) {
131 error = tv->render(hView, coordinates, zoom_factor, rotation_angle);
136 int mapzen_move_center(maps_view_h hView, int delta_x, int delta_y)
138 TangramView* tv = nullptr;
139 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
140 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
141 if (error == MAPZEN_ERROR_NONE && tv) {
142 error = tv->moveCenter(hView, delta_x, delta_y);
147 int mapzen_set_scalebar(maps_view_h hView, bool enable)
149 TangramView* tv = nullptr;
150 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
151 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
152 if (error == MAPZEN_ERROR_NONE && tv) {
153 error = tv->setScalebarEnabled(hView, enable);
158 int mapzen_get_scalebar(maps_view_h hView, bool *enabled)
160 TangramView* tv = nullptr;
161 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
162 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
163 if (error == MAPZEN_ERROR_NONE && tv) {
164 error = tv->getScalebarEnabled(hView, enabled);
169 int mapzen_on_view_object(maps_view_h hView, const maps_view_object_h object, maps_view_object_operation_e operation)
171 TangramView* tv = nullptr;
172 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
173 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
174 if (error == MAPZEN_ERROR_NONE && tv) {
175 error = tv->onViewObject(hView, object, operation);
180 int mapzen_screen_to_geography(maps_view_h hView, int x, int y, maps_coordinates_h *mapsCoord)
182 TangramView* tv = nullptr;
183 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
184 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
185 if (error == MAPZEN_ERROR_NONE && tv) {
186 error = tv->convertScreenToGeolocation(hView, x, y, mapsCoord);
191 int mapzen_geography_to_screen(maps_view_h hView, const maps_coordinates_h mapsCoord, int* x, int* y)
193 TangramView* tv = nullptr;
194 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
195 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
196 if (error == MAPZEN_ERROR_NONE && tv) {
197 error = tv->convertGeolocationToScreen(hView, mapsCoord, x, y);
202 int mapzen_get_min_zoom_level(maps_view_h hView, int *min_zoom_level)
204 TangramView* tv = nullptr;
205 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
206 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
207 if (error == MAPZEN_ERROR_NONE && tv) {
208 error = tv->getMinZoomLevel(hView, min_zoom_level);
213 int mapzen_get_max_zoom_level(maps_view_h hView, int *max_zoom_level)
215 TangramView* tv = nullptr;
216 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
217 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
218 if (error == MAPZEN_ERROR_NONE && tv) {
219 error = tv->getMaxZoomLevel(hView, max_zoom_level);
224 int mapzen_get_center(maps_view_h hView, maps_coordinates_h *center)
226 TangramView* tv = nullptr;
227 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
228 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
229 if (error == MAPZEN_ERROR_NONE && tv) {
230 error = tv->getCenter(hView, center);
235 int mapzen_capture_snapshot(maps_view_h hView, void **data, int *width, int *height, maps_view_colorspace_type_e *cs)
237 TangramView* tv = nullptr;
238 int maps_error = maps_view_get_maps_plugin_view_handle(hView, (void**)&tv);
239 mapzen_error_e error = (mapzen_error_e)convert_maps_error_to_mapzen_error(maps_error);
240 if (error == MAPZEN_ERROR_NONE && tv) {
241 error = tv->captureSnapshot(hView, data, width, height, cs);