从google v3 API响应中检索前两位数字

时间:2013-10-22 19:00:40

标签: javascript jquery ruby-on-rails-3 google-maps-api-3 formatting

我在一个简单的问题中变得“生病”。我正在使用OpenLayers来显示带有谷歌地图基础层的地图。作为用户建议,我正在使用用户提供的地址向Google地理编码API发出请求。

问题:

google api响应是这样的:

lat: "-34.8836111"
lon: "-56.1819444"

之后我必须创建一个LonLat OpenLayers对象并进行转换,如下所示:

var lonLat = new OpenLayers.LonLat(position.coords.longitude,
                                    position.coords.latitude)
                      .transform(
                                  new OpenLayers.Projection("EPSG:4326"), //transform from WGS 1984
                                              window.user_map.getProjectionObject() //to Spherical Mercator Projection
                                            );

问题是lonLat格式处于不同的范围。

lat: -4148075.5841099103
lon: -6254145.441513423

我需要只有前两个整数数字,允许使用谷歌地图API(在另一个页面中)显示。

有任何帮助吗?这可以在ruby中解决,例如在bebore_save方法中格式化坐标,或者在客户端使用javascript / jquery

问候。

2 个答案:

答案 0 :(得分:0)

将数字转换为字符串:

var myStringLat = 123456.123654 + "";

然后得到前两位数字:

var myStringLat2Digits = myStringLat.substr(1, 2);

然后转换回数字:

var myNumberLat2Digits = Number(myStringlat2Digits, 10);

答案 1 :(得分:0)

在显示第二个谷歌地图之前,通过逆序转换解决了问题。

就像那样:

var lonLat = new OpenLayers.LonLat(position.coords.longitude,
                                position.coords.latitude)
                  .transform(
                             window.user_map.getProjectionObject(), //transform from WGS 1984
                                          new OpenLayers.Projection("EPSG:4326") //to Spherical Mercator Projection
                                        );