0

動的なGoogleマップに渡したいjsonファイルから緯度と経度の値を取得しています。

jsonファイルから返された値は、整数に変換した文字列ですが、Googleが読み取るために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実際には次のような 2 つの float 値を取ります

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

つまり、myStrToLat と myStrToLong を LatLng の ctro に渡すだけです...

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

あなたは間違ってそれをしましたか?parseInt の 2 番目のパラメーターは基数です。これは 2 から 36 までの数値であり、さまざまな数値システムで計算するために使用されます。これはあなたが望んでいたものではないと思います。

var myLat = '-32.715883,152.165279';

文字列には緯度と経度の両方が含まれているようです。これは意図したものですか?

于 2013-09-26T08:21:00.610 に答える
0

すでに Ela google.maps.LatLngClass で述べたように、緯​​度は -90,+90 の範囲で、経度は -180,+180 の範囲である必要がありますが、2 つの数値のみを受け入れます。

したがって、変数myLatmyLong変数の両方が 1 つの浮動小数点数のみであることを確認してください。その場合、解析は必要ありません。このように 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 に答える