0

我最近开发了一个使用谷歌地图 APi v3 的应用程序,以便让我的客户指定他们的位置,并根据他们的用户(最终用户)的请求在地图上指示这个位置。

现在,我有两个问题:

我在 2 种语言中使用 API,有时它们会变得混乱,并且变得非常难看。

现在,最佳情况下,我希望允许用户实时更改地图的语言,允许添加两种语言的位置,具体取决于最终用户(我的用户的用户)的需求,但从根据我进行的一项研究,这似乎是不可能的,除非您在同一页面中再次调用 API,而且我不会违反 Google 的使用条款。

我想出的是,我需要对每个位置进行地理编码,然后翻译成另一种语言,然后我就可以为每个用户和页面使用适当的位置名称。

第二个问题是,Google 似乎无法在全球范围内识别非特定类型的位置。假设我输入“美国”或“欧洲”,现在,一些用户更愿意显示它,而 Google API 似乎将地址补全为:“德克萨斯,美国”或“斯德哥尔摩” ,瑞典,欧洲'。那是它放置标记的位置,我想这就是地理编码所做的,获取一个特定的位置,但是是否有一个好的、防错误的方法来解决它,而不是分析用户的输入文本,或者以某种方式过滤和操作来自 API 的结果,这显然违反了使用条款?

在此先谢谢大家!,在过去的几周里,我一直在为此头疼。

4

2 回答 2

1

您可以使用Google Maps 的 Geocoder API

您像这样定义地理编码器:

geocoder = new google.maps.Geocoder();

看看这个例子:http ://geocodezip.com/v3_zoom2countrySelectList.html如下

于 2013-03-12T21:34:28.760 回答
1

这是我在两个国家之间进行地理编码和交换的示例,以及使用打印地理编码调试的东西

console.log(results[0]);

并且,

alert('Got formatted to: ' + results[0].formatted_address);

“欧洲”和“美国”应该出现。标记放置到地理编码返回的 latLng 值。

它使用 gmap3 库来启动地图,因为它是我最近构建的一个示例,但所有相关的东西都是普通的谷歌地图地理编码代码。随心所欲地使用它。

查看JS fiddle(使用国家/地区名称进行地理编码)

为了基于可见视口进行地理编码,您需要获取并传递地理编码器的当前边界,我创建了一个示例,该示例根据实际地理编码器结果对视口边界和中心映射到位置进行地理编码。

查看JS fiddle(使用视口边界进行地理编码)

于 2013-03-12T21:38:43.613 回答