2013-09-26 37 views
0

我從json文件中獲取緯度和經度值,我希望將其傳遞到將會動態顯示的Google地圖。使用JavaScript/jQuery的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); 
}); 

回答

0

google.maps.LatLng其實需要兩個float值一樣

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

這意味着,只要你myStrToLat和myStrToLong傳遞到經緯度的CTRO ...

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

你有沒有做到這一點錯誤? parseInt的第二個參數是基數,它可以是2到36之間的數字,用於計算不同的數字系統。 我想這不是你想要的。

var myLat = '-32.715883,152.165279'; 

該字符串似乎同時包含lat和lng。這是打算?

+0

是的,它是一個錯誤,現在固定的進一步信息。 Schomax給了我答案,謝謝,但你的帖子是我的想法,我想我複雜了,謝謝 – Steven

+0

真棒,順便說一句,請也使用功能和/或接受迴應,以便您的問題可以被標記爲已回答。 .. – MichaC

0

正如已經提到的Ela google.maps.LatLng類只接受兩個數字,而緯度必須在-90,+ 90和經度在-180,+ 180的範圍內。

因此,請確保您的myLatmyLong變量都只是一個浮點數。那麼就不需要任何解析。您可以直接添加到經緯度類這樣

var myLat = -32.715883; 
    var myLong = 140.165279; 

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

你可以找到的int LatLng-Description