就是我最近用了GWT做地图,在做到加标记这个功能的时候遇到了很棘手的问题,就是我的地图是这样加载形成的:
[color=red] mapGrid = new FlexTable();
mapGrid.setCellPadding(0);
mapGrid.setCellSpacing(0);
mapGrid.addTableListener(listener);
fillMapGrid();
viewArea.add(mapGrid);[/color]
fillMapGrid()方法如下:
public void fillMapGrid(){
for(int i = 0 ;i < 8 ; i++){
for(int j = 0 ;j < 13 ; j++){
/**
* 将地图(图片)上的默认浏览器行为除去。
*/
Image image = new Image(){
/**
* 这个部分必须紧跟在实例化过程的后面,不然就不起 作 用,没有在官方文档里找到原因。
*/
public void onBrowserEvent (Event event)
{
DOM.eventPreventDefault(event);
super.onBrowserEvent(event);
}
};
image.setUrl("images/2/2_" + i + "_" + j + ".JPG");
image.setPixelSize(256, 256); //图像块的大小
mapGrid.setWidget(i, j, image); }
}
}
这个方法是加载组成地图的方法,就这样的 现在我做了一个按钮(添加标记的按钮) 当点击的时候能在地图上加个标记(标记是个.gif的图片),现在我用GWT中的PopupPanel方法在指定点(取的相素x,y)加了一个标记,但是当我在移动地图的时候标记还是在那个位置并没有随地图的移动而移动,这是什么原因呢?在正常的情况下在地图上加了个标记后是会随 地图的移动而移动的,这是什么原因呢?
[color=red] mapGrid = new FlexTable();
mapGrid.setCellPadding(0);
mapGrid.setCellSpacing(0);
mapGrid.addTableListener(listener);
fillMapGrid();
viewArea.add(mapGrid);[/color]
fillMapGrid()方法如下:
public void fillMapGrid(){
for(int i = 0 ;i < 8 ; i++){
for(int j = 0 ;j < 13 ; j++){
/**
* 将地图(图片)上的默认浏览器行为除去。
*/
Image image = new Image(){
/**
* 这个部分必须紧跟在实例化过程的后面,不然就不起 作 用,没有在官方文档里找到原因。
*/
public void onBrowserEvent (Event event)
{
DOM.eventPreventDefault(event);
super.onBrowserEvent(event);
}
};
image.setUrl("images/2/2_" + i + "_" + j + ".JPG");
image.setPixelSize(256, 256); //图像块的大小
mapGrid.setWidget(i, j, image); }
}
}
这个方法是加载组成地图的方法,就这样的 现在我做了一个按钮(添加标记的按钮) 当点击的时候能在地图上加个标记(标记是个.gif的图片),现在我用GWT中的PopupPanel方法在指定点(取的相素x,y)加了一个标记,但是当我在移动地图的时候标记还是在那个位置并没有随地图的移动而移动,这是什么原因呢?在正常的情况下在地图上加了个标记后是会随 地图的移动而移动的,这是什么原因呢?