0

我从要传递给动态的谷歌地图的 json 文件中获取纬度和经度值。

从 json 文件返回的值是我已转换为整数的字符串,但我似乎无法将其传递给 latLng 类以供谷歌读取。

$(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);
});
4

2 回答 2

0

google.maps.LatLng实际上需要两个浮点值,例如

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

这意味着,只需将您的 myStrToLat 和 myStrToLong 传递给 LatLng 的 ctro ...

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

你是不是弄错了?parseInt 的第二个参数是基数,它可以是 2 到 36 之间的数字,用于计算不同的数制。我想这不是你想要的。

var myLat = '-32.715883,152.165279';

该字符串似乎同时包含 lat 和 lng。这是故意的吗?

于 2013-09-26T08:21:00.610 回答
0

正如 Ela google.maps.LatLngClass 已经提到的,它只接受两个数字,而纬度必须在 -90,+90 的范围内,经度必须在 -180,+180 的范围内。

因此,请确保您的myLatmyLong变量都是一个浮点数。那么就不需要任何解析了。您可以像这样直接将其添加到 LatLng 类中

  var myLat = -32.715883;
  var myLong = 140.165279;

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

您可以在LatLng-Description中找到更多信息

于 2013-09-26T09:27:22.543 回答