use of org.cesiumjs.cs.core.PinBuilder in project gwt-cs by iSergio.
the class Clustering method buildPanel.
@Override
public void buildPanel() {
csVPanel = new ViewerPanel();
KmlDataSourceOptions kmlDataSourceOptions = new KmlDataSourceOptions();
kmlDataSourceOptions.camera = csVPanel.getViewer().camera;
kmlDataSourceOptions.canvas = csVPanel.getViewer().canvas();
Promise<KmlDataSource, Void> dataSourcePromise = csVPanel.getViewer().dataSources().add(KmlDataSource.load(GWT.getModuleBaseURL() + "SampleData/kml/facilities/facilities.kml", kmlDataSourceOptions));
dataSourcePromise.then(new Fulfill<KmlDataSource>() {
@Override
public void onFulfilled(KmlDataSource dataSource) {
int pixelRange = 25;
int minimumClusterSize = 3;
boolean enabled = true;
dataSource.clustering.enabled = enabled;
dataSource.clustering.pixelRange = pixelRange;
dataSource.clustering.minimumClusterSize = minimumClusterSize;
PinBuilder pinBuilder = new PinBuilder();
pin50 = pinBuilder.fromText("50+", Color.RED(), 48).toDataUrl();
pin40 = pinBuilder.fromText("40+", Color.ORANGE(), 48).toDataUrl();
pin30 = pinBuilder.fromText("30+", Color.YELLOW(), 48).toDataUrl();
pin20 = pinBuilder.fromText("20+", Color.GREEN(), 48).toDataUrl();
pin10 = pinBuilder.fromText("10+", Color.BLUE(), 48).toDataUrl();
singleDigitPins = new String[8];
for (int i = 0; i < singleDigitPins.length; ++i) {
singleDigitPins[i] = pinBuilder.fromText("" + (i + 2), Color.VIOLET(), 48).toDataUrl();
}
// start with custom style
customStyle(dataSource);
_dataSource = dataSource;
}
});
pixelRangeSlider = new Slider("pixelRange", 1, 200, 15);
pixelRangeSlider.setStep(1);
pixelRangeSlider.setWidth("150px");
pixelRangeSlider.addListener(new MSliderListener());
pixelRangeTBox = new TextBox();
pixelRangeTBox.addChangeHandler(new MChangeHandler());
pixelRangeTBox.setText("" + 15);
pixelRangeTBox.setSize("30px", "12px");
HorizontalPanel pixelRangeHPanel = new HorizontalPanel();
pixelRangeHPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
pixelRangeHPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
pixelRangeHPanel.setSpacing(10);
pixelRangeHPanel.add(pixelRangeSlider);
pixelRangeHPanel.add(pixelRangeTBox);
minimumClusterSizeSlider = new Slider("minimumClusterSize", 1, 20, 3);
minimumClusterSizeSlider.setStep(1);
minimumClusterSizeSlider.setWidth("150px");
minimumClusterSizeSlider.addListener(new MSliderListener());
minimumClusterSizeTBox = new TextBox();
pixelRangeTBox.addChangeHandler(new MChangeHandler());
minimumClusterSizeTBox.setText("" + 3);
minimumClusterSizeTBox.setSize("30px", "12px");
HorizontalPanel minimumClusterSizeHPanel = new HorizontalPanel();
minimumClusterSizeHPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
minimumClusterSizeHPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
minimumClusterSizeHPanel.setSpacing(10);
minimumClusterSizeHPanel.add(minimumClusterSizeSlider);
minimumClusterSizeHPanel.add(minimumClusterSizeTBox);
CheckBox enabledCBox = new CheckBox();
enabledCBox.setValue(true);
enabledCBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> valueChangeEvent) {
_dataSource.clustering.enabled = valueChangeEvent.getValue();
}
});
CheckBox customStyleCBox = new CheckBox();
customStyleCBox.setValue(true);
customStyleCBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> valueChangeEvent) {
customStyle(_dataSource);
}
});
FlexTable flexTable = new FlexTable();
flexTable.setHTML(1, 0, "<font color=\"white\">Pixel Range</font>");
flexTable.setWidget(1, 1, pixelRangeHPanel);
flexTable.setHTML(2, 0, "<font color=\"white\">Minimum Cluster Size</font>");
flexTable.setWidget(2, 1, minimumClusterSizeHPanel);
flexTable.setHTML(3, 0, "<font color=\"white\">Enabled</font>");
flexTable.setWidget(3, 1, enabledCBox);
flexTable.setHTML(4, 0, "<font color=\"white\">Custom Style</font>");
flexTable.setWidget(4, 1, customStyleCBox);
AbsolutePanel aPanel = new AbsolutePanel();
aPanel.add(csVPanel);
aPanel.add(flexTable, 20, 20);
contentPanel.add(new HTML("<p>Cluster labels, billboards and points.</p>"));
contentPanel.add(aPanel);
initWidget(contentPanel);
}
Aggregations