Получить первые две цифры из ответа API Google v3

0

Я становлюсь "больным" в простой проблеме. Я использую OpenLayers для отображения карты с базовым слоем карты google. В качестве пользовательского предложения я делаю запрос к API геокодирования google с адресом, предоставленным пользователем.

Проблема:

Ответ 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 карты google (на другой странице).

Любая помощь? Это можно решить в рубине, например, в методе bebore_save, который форматирует координаты или на стороне клиента с javascript/jquery

С уважением.

  • 0
    Какой вопрос?
  • 0
    Проблема в том, что вам не разрешено делать это: API геокодирования можно использовать только в сочетании с картой Google . OpenLayers.Layer.Google не является картой Google. OpenLayers имеет письменное согласие на использование данных от Google, но, боюсь, вы этого не сделаете.
Показать ещё 6 комментариев
Теги:
google-maps-api-3
formatting
ruby-on-rails-3

2 ответа

0
Лучший ответ

Проблема была решена с преобразованием обратного порядка перед показом второй карты google.

Как это:

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
                                        ); 
0

Преобразование чисел в строку:

var myStringLat = 123456.123654 + "";

Затем введите первые две цифры:

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

Затем конвертируйте обратно в номера:

var myNumberLat2Digits = Number(myStringlat2Digits, 10);
  • 0
    С этим я теряю десятичные цифры ...! Но может быть идея.
  • 0
    Затем получите десятичные дроби и сопоставьте их с первыми двумя цифрами, используя тот же метод.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню