本文整理汇总了C++中StylePtr::set_polystyle方法的典型用法代码示例。如果您正苦于以下问题:C++ StylePtr::set_polystyle方法的具体用法?C++ StylePtr::set_polystyle怎么用?C++ StylePtr::set_polystyle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StylePtr
的用法示例。
在下文中一共展示了StylePtr::set_polystyle方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addstylestring2kml
//.........这里部分代码省略.........
{
GBool nullcheck;
GBool nullcheck2;
poKmlLabelStyle = poKmlFactory->CreateLabelStyle ( );
OGRStyleLabel *poStyleLabel = ( OGRStyleLabel * ) poOgrST;
/***** color *****/
int nR,
nG,
nB,
nA;
const char *pszcolor = poStyleLabel->ForeColor ( nullcheck );
if ( !nullcheck
&& poStyleLabel->GetRGBFromString ( pszcolor, nR, nG, nB, nA ) ) {
poKmlLabelStyle->set_color ( Color32 ( nA, nB, nG, nR ) );
}
/***** scale *****/
double dfScale = poStyleLabel->Stretch ( nullcheck );
if ( !nullcheck ) {
dfScale /= 100.0;
poKmlLabelStyle->set_scale ( dfScale );
}
/***** heading *****/
double heading = poStyleLabel->Angle ( nullcheck );
if ( !nullcheck ) {
if ( !poKmlIconStyle) {
poKmlIconStyle = poKmlFactory->CreateIconStyle ( );
IconStyleIconPtr poKmlIcon = poKmlFactory->CreateIconStyleIcon ( );
poKmlIconStyle->set_icon ( poKmlIcon );
}
poKmlIconStyle->set_heading ( heading );
}
/***** hotspot *****/
double dfDx = poStyleLabel->SpacingX ( nullcheck );
double dfDy = poStyleLabel->SpacingY ( nullcheck2 );
if ( !nullcheck && !nullcheck2 ) {
if ( !poKmlIconStyle) {
poKmlIconStyle = poKmlFactory->CreateIconStyle ( );
IconStyleIconPtr poKmlIcon = poKmlFactory->CreateIconStyleIcon ( );
poKmlIconStyle->set_icon ( poKmlIcon );
}
HotSpotPtr poKmlHotSpot = poKmlFactory->CreateHotSpot ( );
poKmlHotSpot->set_x ( dfDx );
poKmlHotSpot->set_y ( dfDy );
poKmlIconStyle->set_hotspot ( poKmlHotSpot );
}
/***** label text *****/
const char *pszText = poStyleLabel->TextString ( nullcheck );
if ( !nullcheck ) {
if ( poKmlPlacemark ) {
poKmlPlacemark->set_name( pszText );
}
}
break;
}
case OGRSTCNone:
default:
break;
}
delete poOgrST;
}
if ( poKmlLineStyle )
poKmlStyle->set_linestyle ( poKmlLineStyle );
if ( poKmlPolyStyle )
poKmlStyle->set_polystyle ( poKmlPolyStyle );
if ( poKmlIconStyle )
poKmlStyle->set_iconstyle ( poKmlIconStyle );
if ( poKmlLabelStyle )
poKmlStyle->set_labelstyle ( poKmlLabelStyle );
delete poOgrSM;
}
示例2: CreateLineStringPlacemark
/**
* @brief KmlExport::CreateLineStringPlacemark Adds a line segment which is colored according to the
* vehicle's speed.
* @param startPoint Beginning point along line
* @param endPoint End point point along line
* @return Returns the placemark containing the line segment
*/
PlacemarkPtr KmlExport::CreateLineStringPlacemark(const LLAVCoordinates &startPoint, const LLAVCoordinates &endPoint, quint32 newPlacemarkTime)
{
CoordinatesPtr coordinates = factory->CreateCoordinates();
coordinates->add_latlngalt(startPoint.latitude, startPoint.longitude, startPoint.altitude);
coordinates->add_latlngalt(endPoint.latitude, endPoint.longitude, endPoint.altitude);
LineStringPtr linestring = factory->CreateLineString();
linestring->set_extrude(true); // Extrude to ground
linestring->set_altitudemode(kmldom::ALTITUDEMODE_ABSOLUTE);
linestring->set_coordinates(coordinates);
StyleMapPtr styleMap = factory->CreateStyleMap();
// Add custom balloon style (gets rid of "Directions to here...")
// https://groups.google.com/forum/?fromgroups#!topic/kml-support-getting-started/2CqF9oiynRY
BalloonStylePtr balloonStyle = factory->CreateBalloonStyle();
balloonStyle->set_text("$[description]");
{
double currentVelocity = (startPoint.groundspeed + endPoint.groundspeed)/2;
// Set the linestyle. The color is a function of speed.
LineStylePtr lineStyle = factory->CreateLineStyle();
lineStyle->set_color(mapVelocity2Color(currentVelocity));
PolyStylePtr polyStyle = factory->CreatePolyStyle();
polyStyle->set_color(mapVelocity2Color(currentVelocity, 100));
// Link the style to the icon
StylePtr style = factory->CreateStyle();
style->set_balloonstyle(balloonStyle);
style->set_linestyle(lineStyle);
style->set_polystyle(polyStyle);
PairPtr pair = factory->CreatePair();
pair->set_styleselector(style);
pair->set_key(kmldom::STYLESTATE_NORMAL);
styleMap->add_pair(pair);
}
{
double currentVelocity = (startPoint.groundspeed + endPoint.groundspeed)/2;
// Set the linestyle. The color is a function of speed.
LineStylePtr lineStyle = factory->CreateLineStyle();
lineStyle->set_color(mapVelocity2Color(currentVelocity));
PolyStylePtr polyStyle = factory->CreatePolyStyle();
polyStyle->set_color(mapVelocity2Color(currentVelocity, 100));
polyStyle->set_fill(false);
// Link the style to the icon
StylePtr style = factory->CreateStyle();
style->set_balloonstyle(balloonStyle);
style->set_linestyle(lineStyle);
style->set_polystyle(polyStyle);
PairPtr pair = factory->CreatePair();
pair->set_styleselector(style);
pair->set_key(kmldom::STYLESTATE_HIGHLIGHT);
styleMap->add_pair(pair);
}
PlacemarkPtr placemark = factory->CreatePlacemark();
placemark->set_geometry(linestring);
placemark->set_styleselector(styleMap);
placemark->set_visibility(true);
// Create the timespan
TimeSpanPtr timeSpan = factory->CreateTimeSpan();
QDateTime startTime = QDateTime::currentDateTimeUtc().addMSecs(newPlacemarkTime); // FIXME: Make this a function of the true time, preferably gotten from the GPS
QDateTime endTime = QDateTime::currentDateTimeUtc().addMSecs(newPlacemarkTime);
timeSpan->set_begin(startTime.toString(dateTimeFormat).toStdString());
timeSpan->set_end(endTime.toString(dateTimeFormat).toStdString());
// Set the name
QDateTime trackTime = QDateTime::currentDateTimeUtc().addMSecs(newPlacemarkTime); // FIXME: Make it a function of the realtime preferably gotten from the GPS
placemark->set_name(trackTime.toString(dateTimeFormat).toStdString());
// Add a nice description to the track placemark
placemark->set_description(informationString.toStdString());
// Set the timespan
placemark->set_timeprimitive(timeSpan);
return placemark;
}