2015-06-22 11 views
5

Tôi vừa mới bắt đầu sử dụng API bản đồ google cho trình duyệt nhưng tôi dường như không làm cho nó hoạt động khi tôi đặt biến ở vị trí kinh độ/vĩ độ thay vì số trực tiếp .Sử dụng biến cho kinh độ và vĩ độ với google maps api

Tôi cần bản đồ để điền từ giá trị của hai yếu tố đầu vào.

Nó không hoạt động với các biến nhưng nếu bạn thay đổi các biến trong hàm thành số thì nó hoạt động hoàn hảo.

Có, tôi biết rằng tôi không nên đăng khóa API của mình nhưng đây là tài khoản tôi sử dụng trên tài khoản để thử nghiệm và tôi sẽ xóa nó.

function initialize() { 
 
     var userLng = $('#lng').val(); 
 
\t var userLat = $('#lat').val(); 
 
    
 
\t var mapOptions = { 
 
\t  center: { lat: userLat, lng: userLng }, 
 
\t  zoom: 8 
 
\t }; 
 
\t var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
 
} 
 

 
google.maps.event.addDomListener(window, 'load', initialize);
#map-canvas { 
 
    height: 30em; 
 
    width: 30em; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCgxY6DqJ4TxnRfKjlZR8SfLSQRtOSTxEU"></script> 
 
<form> 
 
    <input type="text" id="lng" name="lng" value="30"> 
 
    <input type="text" id="lat" name="lat" value="40"> 
 
</form> 
 

 
<div id="map-canvas"></div>

Trả lời

10

Bạn đang sử dụng chuỗi, hãy thử với phao:

var userLng = parseFloat($('#lng').val()); 
var userLat = parseFloat($('#lat').val()); 
var mapOptions = { 
     center: { lat: userLat, lng: userLng }, 
     zoom: 8 
    }; 
+0

câu trả lời đúng! Đây là vấn đề. Nhanh hơn một chút là chỉ cần chuyển đổi kiểu bằng '+' - ví dụ: 'userLng = + $ ('# lng'). val()' – Adam

2

Bạn shuld parseFloat() giá trị đầu vào của bạn, bạn cần số điện thoại không dây.

function initialize() { 
 
     var userLng = parseFloat($('#lng').val()); 
 
\t var userLat = parseFloat($('#lat').val()); 
 
    
 
\t var mapOptions = { 
 
\t  center: { lat: userLat, lng: userLng }, 
 
\t  zoom: 8 
 
\t }; 
 
\t var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
 
} 
 

 
google.maps.event.addDomListener(window, 'load', initialize);
#map-canvas { 
 
    height: 30em; 
 
    width: 30em; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCgxY6DqJ4TxnRfKjlZR8SfLSQRtOSTxEU"></script> 
 
<form> 
 
    <input type="text" id="lng" name="lng" value="30"> 
 
    <input type="text" id="lat" name="lat" value="40"> 
 
</form> 
 

 
<div id="map-canvas"></div>

Chỉnh sửa, sr parseFloat không parseInt

+0

Vĩ độ và Kinh độ không phải là một bộ các số nguyên. Chúng là tọa độ điểm động. –

+0

Có, tôi đã sao chép không tự nguyện từ mã của tôi, tôi đã thay đổi ngay lập tức – Griva

Các vấn đề liên quan