Разбор поплавка для карт Google с использованием Javascript / jQuery

0

Я получаю значения широты и долготы из json файла, который я хочу передать на карты Google, которые будут динамическими.

Значения обратно из json файлов - это строки, которые я преобразовал в целые числа, но я не могу передать его классу latLng для чтения google.

$(document).ready(function(e) {

      var myLat = '-32.715883,152.165279';
      var myLong = '140.165279';
      var myStrToLat = parseFloat(myLat);
      var myStrToLong = parseFloat(myLong);
      var myCords = parseInt((myStrToLat),(myStrToLong));   
      var myObjContentString = 'blah blah' 

function initialize() {
      var myLatlng = new google.maps.LatLng(myCords);
      var mapOptions = {
            zoom: 14,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
          }
      var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
      var contentString = myObjContentString;
      var infowindow = new google.maps.InfoWindow({
          content: contentString
      });
      var marker = new google.maps.Marker({
          position: myLatlng,
          map: map,
          title: 'blab'
      });
      google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map,marker);
      });
    }
google.maps.event.addDomListener(window, 'load', initialize);
});
Теги:
google-maps

2 ответа

0

Как уже упоминалось Ela, google.maps.LatLng Class принимает только два числа, тогда как Широта должна находиться в диапазоне -90, + 90 и Долгота в ярости -180, + 180.

Поэтому убедитесь, что ваши переменные myLat и myLong являются только одним числом с плавающей запятой. Тогда нет необходимости в синтаксическом разборе. Вы можете напрямую добавить его в класс LatLng, как это

  var myLat = -32.715883;
  var myLong = 140.165279;

var myLatlng = new google.maps.LatLng(myLat,myLong);

Вы можете найти дополнительную информацию в описании LatLng

0

google.maps.LatLng фактически принимает два значения float, например

new google.maps.LatLng(-34.397, 150.644)

Это означает, что просто передайте myStrToLat и myStrToLong в ctro LatLng...

var myCords = parseInt((myStrToLat),(myStrToLong));

Вы сделали это по ошибке? Второй параметр parseInt - это радиус, он может быть числом от 2 до 36 и используется для вычисления с использованием разных систем счисления. Наверное, это не то, что вы хотели.

var myLat = '-32.715883,152.165279';

Кажется, что строка содержит как lat, так и lng. Это предназначено?

  • 0
    да, это было ошибкой и теперь исправлено. Schomax дал мне ответ, спасибо, но ваш пост был тем, о чем я думал, я думаю, я слишком усложнил это, спасибо
  • 0
    Отлично, кстати, пожалуйста, также используйте функцию и / или примите ответ, чтобы ваш вопрос мог быть помечен как отвеченный ...

Ещё вопросы

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