Google maps API v3 - 是否可以添加非特定位置,例如大陆或国家/地区?

时间:2013-03-12 20:47:46

标签: javascript google-app-engine google-maps google-maps-api-3

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

现在,我有两个问题:

我正在使用2种语言的API,有时它们会搞砸,并且变得非常难看。

现在,最好的是,我希望允许用户实时更改地图的语言,允许根据最终用户(我的用户的用户)的需求添加两种语言的位置,但是从我进行的一项研究来看,似乎是不可能的,除非你在同一页面上第二次调用API,我并没有违反谷歌的使用条款。

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

第二个问题是,Google似乎并未在全球范围内识别非特定类型的位置。 让我们说我键入“美国美国”或“欧洲”,现在,有些用户会喜欢显示,而Google API似乎可以完成以下内容:'德克萨斯州,美国'或'斯德哥尔摩,瑞典,欧洲'。 这就是它放置标记的位置,我想这就是Geocoding所做的,获取一个特定的位置,但它周围有一个好的,防错的方法,而不是分析用户的输入文本,或者以某种方式过滤和操纵API的结果,这显然违反了使用条款?。

先谢谢你们!在过去的几个星期里,我一直在把头撞到墙上。

2 个答案:

答案 0 :(得分:1)

您可以使用Geocoder API of Google Maps

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

geocoder = new google.maps.Geocoder();

请看一下这个例子:http://geocodezip.com/v3_zoom2countrySelectList.html以下

答案 1 :(得分:1)

以下是我在两个contries之间进行地理编码和交换的示例,以及使用

打印地理编码调试内容

console.log(results[0]);

还有,

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

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

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

查看 JS fiddle (geocode using country name)

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

查看 JS fiddle (geocode using viewport bounds)