지도에 직사각형을 오버레이하는 데 사용한 클래스가 있습니다. 그러나 새로운 결과 집합이 내 displayOnMap 메서드에 제공되는 경우 이전 오버레이를 제거하여 새 사각형을 그리는 방법을 파악할 수 없습니다.GWT를 사용하여 오버레이를 지우는 방법
방법에 대한 더 많은 통찰력을 제공하십시오. PlotSetOutput을 인수를 중심으로 포함하며 각 중심에는 위도/경도 좌표 집합이 포함됩니다. 따라서 그것을 반복하고 위도/경도 경계를 만들고이를 사각형 객체에 할당하는 논리. 방법 (displayOnMap)은 처음 호출
public class displayOnMap extends Composite {
private final VerticalPanel pWidget;
private MapWidget mapWidget;
private static Rectangle rectangle;
private RectangleOptions rectOpts;
private static final LatLng USCENTER = LatLng.newInstance(33.68,-116.17);
public displayOnMap(PlotSetOutput result) {
pWidget = new VerticalPanel();
initWidget(pWidget);
draw(result);
}
private void draw(PlotSetOutput result) {
MapOptions mapOpts = MapOptions.newInstance();
mapOpts.setZoom(4);
mapOpts.setCenter(USCENTER);
mapOpts.setMapTypeId(MapTypeId.TERRAIN);
mapWidget = new MapWidget(mapOpts);
pWidget.add(mapWidget);
mapWidget.setSize("800px", "800px");
ArrayList<Centers> listOfCenters = new ArrayList<Centers>();
List<ResultClusterPlots> finalCluster = result.getFinalcluster();
int totalNumberOfClusters = result.getTotalNumberOfClusters();
for (int i = 0; i < totalNumberOfClusters; i++) {
listOfCenters.add(i, new Centers());
}
for (int j = 0; j < finalCluster.size(); j++) {
Centers p = listOfCenters.get(finalCluster.get(j).getClusterID()-1);
LatLng ne = LatLng.newInstance(finalCluster.get(j).getLatitude()
.get(0), finalCluster.get(j).getLongitude().get(0));
LatLng sw = LatLng.newInstance(finalCluster.get(j).getLatitude()
.get(1), finalCluster.get(j).getLongitude().get(1));
p.setLatLongArr(LatLngBounds.newInstance(ne,sw));
}
for (int k = 0; k < listOfCenters.size(); k++) {
ArrayList<LatLngBounds> ltlgBound = listOfCenters.get(k).getLatLongArr();
String color = getRandomColor();
for (int l = 0; l < ltlgBound.size(); l++) {
rectOpts = RectangleOptions.newInstance();
rectOpts.setStrokeColor("#FF0000");
rectOpts.setStrokeOpacity(0.3);
rectOpts.setStrokeWeight(2);
rectOpts.setFillColor(color);
rectOpts.setFillOpacity(0.35);
rectOpts.setMap(mapWidget);
rectOpts.setBounds(ltlgBound.get(l));
rectangle = Rectangle.newInstance(rectOpts);
rectangle.setMap(mapWidget);
}
}
}
}
출력. 모든 것이 잘 작동합니다. displayOnMap 방법은 제 2 쿼리라고
출력.
나는 rectangle.setMap (널)을하려고 노력; pWidget.removeFromParent();하지만 같은 결과가 계속 나왔습니다.
소스를 시도했지만 일부 클래스가 누락되었습니다. 쇼케이스에서 테스트 할 수 있도록 모든 클래스의 전체 예제를 제공 할 수 있습니까? – Branflake2267