|
From: Weber, S. H. <ste...@si...> - 2011-05-19 12:47:45
|
Hello Alexander,
thanks for the fast reply.
I'm trying to instantiate the cluster strategy via JSNI.
Have a look at my test code. Do you have a clue what is missing/wrong?
---------------------------------------------------
import org.gwtopenmaps.openlayers.client.LonLat;
import org.gwtopenmaps.openlayers.client.Map;
import org.gwtopenmaps.openlayers.client.MapOptions;
import org.gwtopenmaps.openlayers.client.MapWidget;
import org.gwtopenmaps.openlayers.client.Style;
import org.gwtopenmaps.openlayers.client.control.LayerSwitcher;
import org.gwtopenmaps.openlayers.client.control.MousePosition;
import org.gwtopenmaps.openlayers.client.control.NavToolbar;
import org.gwtopenmaps.openlayers.client.control.PanZoomBar;
import org.gwtopenmaps.openlayers.client.control.Scale;
import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
import org.gwtopenmaps.openlayers.client.geometry.Point;
import org.gwtopenmaps.openlayers.client.layer.Layer;
import org.gwtopenmaps.openlayers.client.layer.OSM;
import org.gwtopenmaps.openlayers.client.layer.Vector;
import org.gwtopenmaps.openlayers.client.layer.VectorOptions;
import org.gwtopenmaps.openlayers.client.strategy.Strategy;
import org.gwtopenmaps.openlayers.client.util.JSObject;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class ClusterStrategy implements EntryPoint {
private Map map;
private Vector vectorLayer;
private OSM osmLayer;
private LonLat centerOfGermany = new LonLat(9.77, 51.16);
/**
* This is the entry point method.
*/
public void onModuleLoad() {
MapOptions config = new MapOptions();
config.setNumZoomLevels(32);
config.setProjection("EPSG:4326");
MapWidget mapWidget = new MapWidget("900px", "500px", config);
map = mapWidget.getMap();
map.addControl(new PanZoomBar());
map.addControl(new NavToolbar());
map.addControl(new MousePosition());
map.addControl(new LayerSwitcher());
map.addControl(new Scale());
centerOfGermany.transform("EPSG:4326", "EPSG:900913");
osmLayer = OSM.Mapnik("OpenStreetMap");
vectorLayer = createLayer();
map.addLayers(new Layer[] { osmLayer, vectorLayer });
map.setCenter(centerOfGermany, 5);
RootPanel.get("main").add(mapWidget);
}
private Vector createLayer() {
// Create the vectorOptions
VectorOptions vectorOptions = new VectorOptions();
vectorOptions.setStyle(createStyle());
Strategy st = new Strategy(createClusterStrategy()) {
};
vectorOptions.setStrategies(new Strategy[] { st });
Vector layer = new Vector("Vector Layer", vectorOptions);
addSomePoints(layer);
return layer;
}
/**
* @param layer
*/
private void addSomePoints(Vector layer) {
for (int i = 0; i < 100; i++) {
double lon = 9 + (double) i / 10;
double lat = 45 + (double) i / 10;
LonLat lonlat = new LonLat(lon, lat);
lonlat.transform("EPSG:4326", "EPSG:900913");
Point point = new Point(lonlat.lon(), lonlat.lat());
VectorFeature pointFeature = new VectorFeature(point);
layer.addFeature(pointFeature);
}
}
private Style createStyle() {
Style style = new Style();
style.setStrokeColor("#000000");
style.setStrokeWidth(1);
style.setFillColor("#FF0000");
style.setFillOpacity(0.5);
style.setPointRadius(10);
style.setStrokeOpacity(1.0);
return style;
}
private static native JSObject createClusterStrategy() /*-{
var clusterStrategy = new $wnd.OpenLayers.Strategy.Cluster({
distance : 20,
threshold : 2
});
return clusterStrategy;
}-*/;
}
---------------------------------------------------
Stefan
-----Ursprüngliche Nachricht-----
Von: Alexander Solovets [mailto:aso...@gm...]
Gesendet: Donnerstag, 19. Mai 2011 13:50
An: Weber, Stefan Hagen
Cc: gwt...@li...
Betreff: Re: [Gwt-openlayers-users] Cluster Strategy
Hello, Stefan!
See JSNI explanation on GWT project page. Or you could just look at
OL-GWT sources and do it similarly.
|