Saturday, September 16, 2006

卫星图像更新以及性能改进(API v2 最新版: 2.63)

原文:New Satellite Imagery and Performance Improvements
作者:Joel Headley,Google Maps API布道者

Maps API 2最近进行了一些更新,包括修正了几个Bug,改善了API的性能,以及在全世界范围内对卫星图形进行了更高分辨率的更新。

  • 卫星图形更新 我们更新了图形数据库的主要部分。这次更新包括,17个美国城市(Albuquerque, Augusta, Baltimore, Corpus Christi, Houston, Little Rock, McAllen, Miami, Philadelphia, Pierre, Pittsburg, Riverside-San Bernadino, San Diego, San Juan, Spokane, St. Louis, Wichita),6个日本地区(Chiba, Ehime, Kagawa, Kanagawa, Nara, Shizuoka),7个德国城市(Dusseldorf, Erlangen, Fuerth, Gelsenkirchen, Ludwigshafen, Muenchen, Schwerte, Karlsruhe),以及荷兰。我们还大幅度提高了卫星图像的覆盖范围,并更新了美国几个州(Califonia, Georgia, Montana, Rhode Island, Connecticut, New Hampshire, Maryland, Texas, Florida, Maine, Louisiana, New York)的卫星图像。
  • 改变了API的错误处理方式 以前,当事件处理函数中发生错误时,Maps API会捕捉错误并阻止它,也就是说地图可能会无视错误的发生而继续运行。很多开发者告诉我们,这样大大提高了他们在事件处理函数中调试代码的难度,所以我们改变了Maps API,使其不再阻止错误。如果你的程序代码在2.62版本下一切正常,而在2.63版本下无法工具,那么说明你的事件处理代码中可能存在错误。如果你遇到了这种问题而且无法修正,请在Maps API讨论组反馈你遇到的问题。
  • 加快了addOverlay()方法的运行速度 最近我们提高了removeOverlay()方法的性能,接下来我们就改进了addOverlay的性能,也就是说现在放地图中加入标记的速度被大大提高了。API优化后,加入100个标记消耗的事件是改进之前的55%。你可以自己测试一下当前版本老版本的性能。
  • GTileLayerOverlay的Bug修正 我们修正了讨论组中提到的这个问题(译注:GTileLayerOverlay无法删除)。请注意,应该在TileLayerOverlay对象上调用addOverlay()和removeOverlay()方法,而不是在GTileLayer之上。
  • 可拖动的标记 我们改进了可拖动的标记,给用户更多灵活性。现在你可以选择在移动标记的时候,是标记抬起,还是“X”落下,这一改进是根据我们收到的一些反馈作出的。把GMarkerOptions的dragCrossMove属性设为true看看吧(译注:需要仔细看,不然确实看不清楚……)。
我们忙于改进API 2的性能,另外我们希望提醒每个人升级到API 2。我们计划在大约一个月后关闭API 1的支持。如果你还没有升级,请访问我们的升级指南

API v1 最新版: 1.31
API v1 默认版: 1.31
API v2 最新版: 2.63
API v2 默认版: 2.62

Labels: , , , ,



Saturday, August 19, 2006

可拖动的标记和GTileLayerOverlays(图块层覆盖对象)

原文:Draggable Markers and GTileLayerOverlays
作者:

Google Maps Api 2.61修正版引入了两个非常酷的功能——可拖动的标记和GTileLayerOverlays。

可拖动的标记

在2.46修正版中,我们加入了一个隐藏功能可拖动的标记,而今天这个功能作为Google Maps Api的一部分正式登场了。想让标记可以拖动,在你声明这个标记的时候,设置draggable选项为true:var marker = new GMarker(center, {draggable: true});

当你拖动标记的时候,会出现一个X型图标用来标明标记将被放置的位置。你放下标记后,它会跳到位置(这会令你感到非常有趣)。如果你更喜欢不会跳动的标记,请把标记的bouncy选项设为false。

来试试看这个可以拖动的标记

GTileLayerOverlay(图块层覆盖对象)

Google Maps Api中有GTileLayer类(用来创建你的GMapType)以及GOverlay类(用来在地图上面显示物体)。现在我们引入GTileLayerOverlay类,你可以用它在图块层(译注:Google Map的地图是一个一个图块组成的,图块层就是组成地图的图块所在的层)加入自己的内容,而不需要引入新的地图类型。你可以随意加入和去掉他们,不像创建新的地图类型那么麻烦。例如,为了创建一个半透明地图,你可以用一个50%透明度的GTileLayerOverlay覆盖在地图上。
var tilelayer = new GTileLayer(new GCopyrightCollection(), 0, 17);
tilelayer.getTileUrl = function(tile, zoom) {
// 一个更有意思的图块层覆盖对象会处理这些数字的
// tile.x, tile.y and zoom.
return "http://kml.lover.googlepages.com/white_map_tile.gif";
};
tilelayer.getOpacity = function() {return 0.5;}
map.addOverlay(new GTileLayerOverlay(tilelayer));
效果请见

如果你想测试最新的功能,别忘了用v=2.x参数代替原有的Api版本参数。
API v1 Current: 1.31
API v1 Default: 1.31
API v2 Current: 2.61
API v2 Default: 2.60

Labels: , ,