Saturday, December 08, 2007

v2.94地形以及新的地图类型控件

原文:v2.94: Terrain and a New MapTypeControl to show it off!
作者:
正如上周在Google Lat Long Blog宣布的,Google Map新增了一个地形类型,显示地点的物理信息,完全基于地形,可以看得非常清楚。如果你还没试过,搜索Mount Everestthe Grand CanyonGlacier Bay National Park,或者其他被大自然的力量腐蚀冲刷和构建的出来的地方。在API中我们没有直接启动地形类型,因为我们不想让开发者太过“惊喜”,突然把一个按钮放在他们的地图上,但是添加这个类型的操作很简单。一切只需要在初始化GMap2后,加入下面的代码就可以在你的地图上加上地形按钮:map.addMapType(G_PHYSICAL_MAP);

除了新的地图类型,Google Map的界面接口还发生了一些微妙的变化:Hybrid按钮被去掉了,取而代之的是Satellite按钮下面的下拉菜单里面包含了一些带有标签的复选框。新的UI反映出,hybrid图层其实就是卫星图片和一些来自标准地图块的透明的信息层的组合。我们用 GHierarchicalMapTypeControl类来为开发者提供这个特性。新控件定义了函数用来加入关联的控件,这样你就可以指定这些下拉列表如何显示。关于如何设置这些关系,参看API文档中修改标准控件的构成的。

如果想模仿现有的地图界面,只需要用GHierarchicalMapTypeControl对象(默认已经包含G_SATELLITE_MAP/G_HYBRID_MAP的关系)代替GMapTypeControl即可。如果想在自定义地图上面使用自己的控件,你可以清除默认设置,指定符合你要求的关系。

例如,我使用来自UCL-CASA的Google Maps Creator,这个伟大的Java程序,把免费提供的ESRI SHP文件变成图块层。在得到程序自动生成的自定义的地图代码,我把它们整合到地图里并加入新的地图类型控件。结果是一个地图带有一个下拉列表,让你在4个图块层之间切换(San Francisco的不同数据)。试试看它,希望你可以从中得到灵感。如果遇到问题可以在Maps API讨论组告诉我们。

From译者:对于中国的Google Maps API用户任何问题也可以发往Google Maps API中文讨论组





新文章:创建用户生成内容的地图程序

原文:New Article: Creating a User-Contributed Map App
作者:Pamela Fox

在疯狂的Web 2.0世界,一切都与用户相关。一切在于用户想从你的网站得到什么,以及用户可以如何帮你的网站创建内容。这对地图网站来说尤其正确 - 我们的世界是一个巨大复杂的地方,无数用户都可以称得上他们居住地点10公里半径范围内的地理专家。这就是为什么今年maps.google.com加入用户创建地图,地理信息编辑,本地商业信息评论等功能的原因之一。现在你的脑中也许有了个问题:“我的网站怎么加入这些用户写作行为呢?”好消息是,这里就有答案。

我们上一篇文章,"Creating a User-Contributed Map with PHP and Google Spreadsheets"描述了构建一个社区共享地图应用程序的基础需求。 文章带你浏览了注册用户,登录,让用户增加地图位置和创建地图等步骤。文章使用Google电子表格仿数据库,使用php库来执行HTTP操作,给你一个数据库编辑和展现的先进的优秀的前端(spreadsheets.google.com),以及一个不依赖于具体服务提供者的数据库。然而,对于更喜欢PHP/MYSQL的用户来说,应该也可以读懂这篇文章中,并用Mysql数据库代替实现相同的功能。如果遇到问题可以在Maps API讨论组告诉我们。

From译者:对于中国的Google Maps API用户任何问题也可以发往Google Maps API中文讨论组






Saturday, December 01, 2007

[翻译]你家周边在Google maps上吗?用新方法来找到答案吧

原文:Is Google Maps in your neck of the woods? A new, interactive way to find out!
作者:

好消息:在Google,我们持续的增加地图在全球的覆盖范围:推出新的地图块,加入地理和寻路数据,收集本地商业信息等等。坏消息:维系覆盖范围并且记住哪里有什么是很困难的。这是我的工作,但我都几乎不能记录下来。

所以,我们共同创作了一个电子表格,包含了每个国家的覆盖范围以及里面有些什么,用一个灵活的自动筛选机制表现,这样你可以快速的回答下面这类问题:

  • 哪些国家拥有地图块和本地商业信息?
  • 哪些国家有本地化地图控件?
  • 哪些国家有行驶导航和地理译码?(如下)

电子表格的FAQ项在这里, 自动筛选的电子表格在这里, 发行版本的电子表格在这里。如果遇到问题可以在Maps API讨论组告诉我们。

From译者:对于中国的Google Maps API用户任何问题也可以发往Google Maps API中文讨论组



Thursday, November 15, 2007

[翻译]把你的信息窗口撑到最大化

原文:Pump up your info windows to the max!
时间:Tuesday, November 13, 2007 at 12:18:00 PM

你的地图中的信息窗口是不是充满了信息,几乎都无法完全显示?好,就让他们撑大到最大化的信息窗口吧。在2.93版,API开发团队加入了几个选项,函数和事件来扩展GInfoWindow,让你可以模仿GoogleMap中本地搜索结果的信息窗口,它可以展开来显示某个特定商业地点的详细信息。设定GInfoWindowOptions中的maxContent和maxTitle,你的信息窗口就会自动被赋予一个最大化按钮和一个最大化动画。

下面的例子,展示了你如何在地图点击或者标记点击上使用该特性,如何把一个字符串或者DOM节点传递给这个选择。



如果你是一个高手,你可以感兴趣如何在点击的时候动态往最大化的信息窗口装入内容(这样你就可以仅仅下载用户感兴趣的信息)。通过监听maximizeclick事件,你可以在用返回数据后替换maxContent DOM节点的innerHTML。这里有个例子,展示了如何从其他的文件装入内容到一个最大化信息窗口。

从这些例子开始尝试吧,如果遇到问题可以在Maps API讨论组告诉我们。不要太沉迷于最大化的动画。 :)

From译者:对于中国的Google Maps API用户任何问题也可以发往Google Maps API中文讨论组

Labels: , , , ,



Sunday, November 11, 2007

[翻译]呼叫所有的PHP/MySQL开发者:这里有给你们的例子代码

原文:Calling all PHP/MySQL Developers: Come get your sample code!
作者:

最近我们在观察哪些开发者看了我们写的PHP/MySQL流行文章,并从中受益:“使用Google Maps和PHP/MySQL”和“使用PHP和MySQL创建KML”。我们得到了不少回应。这里有其中的两个:
  • SuburbView:这是一个澳大利亚的不动产列表网站,包括一个地图和复选框允许你过滤结果,还包括一个带有显著标签的KML文件,可以指示出列表中所有重要的价格。
  • Crete Property Map:这是另外一个不动产列表网站,允许用户使用复选框过滤结果,还包括了我们开源的DragZoomControl,以及一个好看的侧边栏和信息窗口。开发者还在他的sitemap中包含了KML输出结果,这样他的不动产列表就可以被Google索引,可以在Google Maps中被搜索到。
既然很明显有非常多的热心的PHP/MySQL开发者,我们决定为你们再发布两篇新的文章:

所有我们的PHP/MySQL文章使用相同的表和数据,这样你可以简单的只创建一个相似的表,在所有的例子中使用它。 另外,所有的文章支持PHP4和PHP5。

另外,就像我们总是提起的,建议意见请发往这个论坛

From译者:对于中国的Google Maps API用户任何问题也可以发往Google Maps API中文讨论组

Labels: , , ,



Tuesday, November 06, 2007

[翻译]对GoogleBar的介绍

原文:Introducing... the GoogleBar!
作者:
最近几个月,AJAX Search API团队启动并完善了他们为Google Maps API设计的本地搜索控件。有了本地搜索控件,开发者可以轻松的在他们的Mashup中加入本地商业搜索功能。

我们Maps API团队非常喜爱这个控件,所以我们想让开发者更容易地在自己的地图中加入本地搜索控件。今天,我们发布Google Maps API的新特性,我们把这个新特性叫做GoogleBar。

启用GoogleBar的开发者将看到他们地图上面的"Powered By Google"的Logo被一个漂亮的新控件取代,这个新控件提供了一个搜索框,这样用户就可以搜索地图上的本地信息了。看看下面的例子,你看到的是我在Scotland,Edinburgh的老镇的老巢。来搜搜看那里的Pub吧。



想要使用GoogleBar,简单的调用map对象的enableGooglebar()方法即可。

var map = new GMap2(document.getElementById("map"));
...
map.enableGoogleBar();


像往常一样,任何问题和评论请发布在Maps API论坛上。

From译者:对于中国的Google Maps API用户任何问题也可以发往Google Maps API中文讨论组

Labels: , ,



如何在Google Maps API中使用谷歌地图的数据

如何在Google Maps API中使用谷歌地图的数据?

这几乎是我听到的最多的关于Google Maps API的问题了。大家都知道Google Maps没有中国的详细地图,在中国,我们只有一个独特的谷歌地图网站,提供了中国的详细地图。这种现状的原因,Google和谷歌都没有正式解释过,但是我们自己多半也能猜到大概,这我们就不多说了。

问题是,我们有了中国的详细地图,我们怎么在Google Maps API中使用呢?之前我总是这么回答大家,谷歌地图提供了兼容Google Maps API语法的API,唯一的问题就是不太稳定。这个方法其实并不好,因为你需要在代码中去考虑怎么在两个不同的对象之间切换,代码逻辑会变得非常的复杂。

但是因为谷歌地图现在的缩放级别和切图模式已经完全等同于Google Maps了。所以其实,我们有一个非常好的办法,那就是直接利用谷歌地图的地图块构建一个Google Maps API的自定义地图类型。

下面是来自Anthony Wong的在Google Maps API中使用谷歌地图的例子(地图类型出现了四个选择,第四个DITU就是选择谷歌地图的按钮):



核心代码是:

var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180),
new GLatLng(90, 180)),
0, "Map data: В©2007 Mapabc.com");
var copyrightCollection = new GCopyrightCollection("В©2007 Google - ");
copyrightCollection.addCopyright(copyright);
var dituTileLayer = new GTileLayer(copyrightCollection, 1, 17);
dituTileLayer.getTileUrl = function(tile, zoom) {
return "http://mapgoogle.mapabc.com/googlechina/maptile?v=w2.52&x=" +
tile.x + "&y=" + tile.y + "&zoom=" + (17-zoom);
};

// Using a map type:
var dituMapType = new GMapType([dituTileLayer],
new GMercatorProjection(23), "Ditu", { shortName: "ditu", alt: "Show maps from Google China" });
map.addMapType(dituMapType);


简单又好用,而且不会让你的代码逻辑变复杂,加入这个地图类型后,你的其他代码不需要改动。我准备近期就把这个代码加到ZMap.org中。

Labels: , , , , ,