function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(39.917, 116.397), 14);
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 10; i++) {
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan *
Math.random());
marker = createMarker(point, i + 1);
batch.push(marker);
}
mgr = new GMarkerManager(map);
mgr.addMarkers(batch,14);
mgr.refresh();
}
}
// 在给定的点上创建带编号的标注
function createMarker(point, number) {
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("标注 #<b>" + number + "</b>");
});
return marker;
}
function reload()
{
map.clearOverlays();
}
//]]>
</script>
</head>
<body onload="load();" onunload="GUnload();">
<a onclick="reload();">Reload</a>
<div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>
点一下Reload() 清除地图上所有的标注。 然后请拖拽地图到较远处(越远越好),再拖回原来的地图中心。
请告诉我为什么若干标注(有时候是全部,有时候是一个)又回到地图上来了?我要如何才能彻底清除这些标注?
点一下Reload() 清除地图上所有的标注。 然后请拖拽地图到较远处(越远越好),再拖回原来的地图中心。
请告诉我为什么若干标注(有时候是全部,有时候是一个)又回到地图上来了?我要如何才能彻底清除这些标注?
既然单个标注是可以从map上被remove掉的,那为何GMarkerManager不提供一个能够remove掉marker的方法?
GMap2中也没有提到用GMarkerManager添加标注如何清除。
实际应用中,调用GMarkerManager中的一个标注a的hide()方法,a将隐藏,a.isHidden()此时为true,当拖动地图到远
处再回来,发现a已经显示出来的,但a.isHidden()依然为true。
也就是说GMarkerManager管理标注的时候肯定发生问题了,无论如何,一个标注如果被显示出来了,那它的isHidden()不应该仍然为
true。
演示代码只是说明了一些简单的问题,我不会因此认为是BUG,我市在深入研究后才觉得有问题。况且,按你说的,我本来也认为
GMarkerManager自己refresh()了,但
第二次显示出来的那些标注并不是全部显示出来,而是零落的,除非拖到很远再拖回来才会全部显示,这是为什么?并且既然显示出来了,为什么单个
Marker的isHidden()依然是true?
你认为这不是BUG吗?Google不是神,你一直就在跟我争论的焦点就是"Google不会有BUG,你好好检查自己的程序吧",这种争论有意义吗?
你有时间还不如研究一下我的问题,给我提供一个解决方案。
On 8月21日, 下午9时27分, "Zhang Jingjun" <zhang.jing...@gmail.com> wrote:
> 我试验了一下,现象的确如你所描述的。
> 我自己的网站没有用到GMarkerManager,对这个类不大了解。刚才临时看了一下文档,有以下意见:
> 1、GMarkerManager不是GOverlay的实现,因此reload()里面的clearOverlay不会清除GMarkerManager
> 2、clearOverlay只是把Overlay从地图上清除(隐去,不显示),但是并没有回收Overlay的实例,因此clearOveray之后所有的Marker都还在,随时可以重新显示
> 3、拖回原来的地图中心时,GMarkerManager依然在起作用,因此肯定会触发GMarkerManager的refresh()调用,从而根据其判断重新将全部或者部分Marker显示出来。
>
> 以上分析只是我个人的看法。如果这些分析是对的话,说明所有的代码都正常工作,程序中没有Bug。
> 至于程序不能按照你的意愿工作,那只能说明你没有按照你自己的意愿来正确书写程序,换句话说是程序的设计问题。
>
> On 8/21/07, 马日拉 <marilaw...@gmail.com> wrote:
>
>
>
> > 点一下Reload() 清除地图上所有的标注。 然后请拖拽地图到较远处(越远越好),再拖回原来的地图中心。
> > 请告诉我为什么若干标注(有时候是全部,有时候是一个)又回到地图上来了?我要如何才能彻底清除这些标注?
>
> --
> 阿图仔www.artozi.com
> 上海市中山北路3856弄2号中环大厦2506室
> +86 (21) 52680420
> MSN: jjzhang2...@hotmail.com
既然单个标注是可以从map上被remove掉的,那为何GMarkerManager不提供一个能够remove掉marker的方法?
GMap2中也没有提到用GMarkerManager添加标注如何清除。
实际应用中,调用GMarkerManager中的一个标注a的hide()方法,a将隐藏,a.isHidden()此时为true,当拖动地图到远
处再回来,发现a已经显示出来的,但a.isHidden()依然为true。
也就是说GMarkerManager管理标注的时候肯定发生问题了,无论如何,一个标注如果被显示出来了,那它的isHidden()不应该仍然为
true。
演示代码只是说明了一些简单的问题,我不会因此认为是BUG,我市在深入研究后才觉得有问题。况且,按你说的,我本来也认为
GMarkerManager自己refresh()了,但
第二次显示出来的那些标注并不是全部显示出来,而是零落的,除非拖到很远再拖回来才会全部显示,这是为什么?并且既然显示出来了,为什么单个
Marker的isHidden()依然是true?
你认为这不是BUG吗?Google不是神,你一直就在跟我争论的焦点就是"Google不会有BUG,你好好检查自己的程序吧",这种争论有意义吗?
你有时间还不如研究一下我的问题,给我提供一个解决方案。
On 8月21日, 下午9时27分, "Zhang Jingjun" <zhang.jing...@gmail.com> wrote:
> 我试验了一下,现象的确如你所描述的。
> 我自己的网站没有用到GMarkerManager,对这个类不大了解。刚才临时看了一下文档,有以下意见:
> 1、GMarkerManager不是GOverlay的实现,因此reload()里面的clearOverlay不会清除GMarkerManager
> 2、clearOverlay只是把Overlay从地图上清除(隐去,不显示),但是并没有回收Overlay的实例,因此clearOveray之后所有的Marker都还在,随时可以重新显示
> 3、拖回原来的地图中心时,GMarkerManager依然在起作用,因此肯定会触发GMarkerManager的refresh()调用,从而根据其判断重新将全部或者部分Marker显示出来。
>
> 以上分析只是我个人的看法。如果这些分析是对的话,说明所有的代码都正常工作,程序中没有Bug。
> 至于程序不能按照你的意愿工作,那只能说明你没有按照你自己的意愿来正确书写程序,换句话说是程序的设计问题。
>
> On 8/21/07, 马日拉 <marilaw...@gmail.com> wrote:
>
>
>
> > 点一下Reload() 清除地图上所有的标注。 然后请拖拽地图到较远处(越远越好),再拖回原来的地图中心。
> > 请告诉我为什么若干标注(有时候是全部,有时候是一个)又回到地图上来了?我要如何才能彻底清除这些标注?
>
> --
> 阿图仔www.artozi.com
> 上海市中山北路3856弄2号中环大厦2506室
> +86 (21) 52680420
> MSN: jjzhang2...@hotmail.com
我现在有替代的解决方案,那就是每次重新加载地图,只是我认为这样解决在效率上很不划算。GMarkerManager应该提供一个可以清除标注的方
法,或者它可能提供了但我还没发现。我是在这里讨论问题的,而不是争论Google有没有Bug的,它是一家公司,不是上帝。
研究自己的问题不代表永远不质疑权威,你的这种对待事物的态度,是典型的国人作风。
On 8月21日, 下午10时17分, "Zhang Jingjun" <zhang.jing...@gmail.com> wrote:
> 既然你不愿意研究自己的问题,那你就在这里等待Google的帮助吧。
> 自助者,天助之
>
> MSN: jjzhang2...@hotmail.com
MSN: jjzha...@hotmail.com
On 8月22日, 上午10时42分, "Zhang Jingjun" <zhang.jing...@gmail.com> wrote:
> 挑战权威不是动辄指责别人,更不是把普通的讨论上升为国人素质问题。
> 既然你认为我缺乏理解能力,那我闭嘴就是了,好自为之,呵呵。
>