mapzen_error_e TangramView::updateMarker(maps_view_object_h object, Tangram::MarkerID tvMarker)
{
- std::string styleString = "";
maps_coordinates_h mapsCoord = nullptr;
double lat = 0.0, lng = 0.0;
int markerWidth = 0, markerHeight = 0;
int error = MAPS_ERROR_NONE;
unsigned char *imgData = nullptr;
- const char* styleFormat = "{ style: 'sdk-point-overlay', color: white, size: [%fpx, %fpx], collide: false, anchor: %s, transition: { [show, hide]: { time: 0s } } }";
+ const char* styleFormat = "{ style: 'sdk-point-overlay', color: white, size: [%dpx, %dpx], collide: false, anchor: %s, transition: { [show, hide]: { time: 0s } } }";
static std::string anchor;
float scaledWidth = scaleFactor * markerWidth;
float scaledHeight = scaleFactor * markerHeight;
- int sz = std::snprintf(nullptr, 0, styleFormat, scaledWidth, scaledHeight, anchor.c_str());
- styleString.resize(sz+1);
- std::snprintf(&styleString[0], styleString.size(), styleFormat, scaledWidth, scaledHeight, anchor.c_str());
+ char styleString[256];
+ std::snprintf(styleString, sizeof(styleString), styleFormat, int(scaledWidth), int(scaledHeight), anchor.c_str());
- MAPS_LOGD("Marker Style String: %s", styleString.c_str());
- m_map->markerSetStyling(tvMarker, styleString.c_str());
+ MAPS_LOGD("Marker Style String: %s", styleString);
+ m_map->markerSetStyling(tvMarker, styleString);
error = maps_view_object_marker_get_coordinates(object, &mapsCoord);
if (error != MAPS_ERROR_NONE) { break; }
mapzen_error_e TangramView::updatePolyline(maps_view_object_h object, Tangram::MarkerID tvMarker)
{
- std::string styleString = "";
int error = MAPS_ERROR_NONE;
Tangram::Coordinates coords = {};
unsigned char r = 0, g = 0, b = 0, a = 0;
error = maps_view_object_polyline_get_width(object, &width);
if (error != MAPS_ERROR_NONE) { break; }
- int sz = std::snprintf(nullptr, 0, styleFormat, r, g, b, a, width);
- styleString.resize(sz+1);
- std::snprintf(&styleString[0], styleString.size(), styleFormat, r, g, b, a, width);
+ char styleString[256];
+ std::snprintf(styleString, sizeof(styleString), styleFormat, r, g, b, a, width);
- MAPS_LOGD("Polyline Style String: %s", styleString.c_str());
+ MAPS_LOGD("Polyline Style String: %s", styleString);
- m_map->markerSetStyling(tvMarker, styleString.c_str());
+ m_map->markerSetStyling(tvMarker, styleString);
error = maps_view_object_polyline_foreach_point(object, emplaceCoord, &coords);
if (error != MAPS_ERROR_NONE) { break; }
mapzen_error_e TangramView::updatePolygon(maps_view_object_h object, Tangram::MarkerID tvMarker)
{
- std::string styleString = "";
int error = MAPS_ERROR_NONE;
Tangram::Coordinates coords = {};
unsigned char r = 0, g = 0, b = 0, a = 0;
error = maps_view_object_polygon_get_fill_color(object, &r, &g, &b, &a);
if (error != MAPS_ERROR_NONE) { break; }
- int sz = std::snprintf(nullptr, 0, styleFormat, r, g, b, a);
- styleString.resize(sz+1);
- std::snprintf(&styleString[0], styleString.size(), styleFormat, r, g, b, a);
+ char styleString[256];
+ std::snprintf(styleString, sizeof(styleString), styleFormat, r, g, b, a);
- MAPS_LOGD("Polygon Style String: %s", styleString.c_str());
+ MAPS_LOGD("Polygon Style String: %s", styleString);
- m_map->markerSetStyling(tvMarker, styleString.c_str());
+ m_map->markerSetStyling(tvMarker, styleString);
error = maps_view_object_polygon_foreach_point(object, emplaceCoord, &coords);
if (error != MAPS_ERROR_NONE) { break; }