2016-04-01 60 views
0

我使用下面的代碼,以紀念使用谷歌地圖API的JS多個標誌放置在谷歌地圖API,其中COORDS將從數據庫

我推JSON數據位置陣列上谷歌地圖多種標記。

JSON具有座標

18.53515053 73.87944794和18.53640175 73.88206482

,當我使用數組中請求數據它給我正確的結果。

當我推數據位置陣列它給我

數組[ 「18.53515053」, 「73.87944794」, 「18.53640175」, 「73.88206482」]

但我想下面類型結果

var locations = [[18.53515053, 73.87944794], [18.5670762, 73.9084194]] 

請幫我

function multimarker(map) 
{ 
     jQuery.ajax({        
    url: baseurl + "getdriverlocation.php", 
    type: "JSON", 
    async: false, 
    success: function(data){ 
     var myArray = jQuery.parseJSON(data);// instead of JSON.parse(data) 

     jQuery(myArray).each(function(index, element) {  
     driverlat = element.driver_lat; 
     driverlng = element.driver_lng; 
     locations.push(driverlat , driverlng) 
}); 

    alert (locations) 
} 
}); 
    for (i = 0; i < locations.length; i++) 
       { 
       alert( locations[i][0]); 
       var latlng1 = new google.maps.LatLng(locations[i][0], locations[i][1]); 
      drivermarker=new google.maps.Marker({position:latlng1}); 
      drivermarker.setMap(map); 
      var infowindow = new google.maps.InfoWindow(); 
      google.maps.event.addListener(drivermarker, 'click', (function(marker, i) { 
      return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, drivermarker); 

     } 
     })(drivermarker, i)); 
       } 

} 
+0

包括相關的代碼,以OP – guradio

+0

什麼呢'的console.log(位置)'這個輸出你想要什麼輸出? – guradio

+0

哪裏位置聲明? – uzaif

回答

0

請嘗試以下功能

注意你正在嘗試做是行不通的,因爲你的Ajax是異步的,所以當阿賈克斯完成

function getLocationOfDriver() 
{ 

    jQuery.ajax({        
    url: baseurl + "getdriverlocation.php", 
    type: "JSON", 
    async: false, 
    success: function(data){ 
     var myArray = jQuery.parseJSON(data);// instead of JSON.parse(data) 
     var aaray =[]; 
     $.each(myArray,function(index, element) {  
     driverlat = element.driver_lat; 
     driverlng = element.driver_lng; 
     aaray.push([driverlat,driverlng]) 

     }); 
     console.log(aaray) 
}}); 
} 
0

試試這個

var locations = [[18.53515053, 73.87944794],[18.53515053, 73.87944794]]; 
 
var output = locations.map(function(val){return {val1: val[0], val2: val[1]}}) 
 
document.body.innerHTML += JSON.stringify(output,0,4);

編輯: 在你的代碼已經共享,做出這些改變

var locations = myArray.map(function(value) {  
    return { val1 : value.driver_lat, val2: value.driver_lng }; 
}); 
0

這是我得到了我的結果是我想要得到的值返回。

var driverlat,driverlng; 
var locations = []; 

function multimarker(map) 
    { 
      jQuery.ajax({        
     url: baseurl + "getdriverlocation.php", 
     type: "JSON", 
     async: true, 
     success: function(data){ 
      var myArray = jQuery.parseJSON(data);// instead of JSON.parse(data) 

      jQuery(myArray).each(function(index, element) {  
      driverlat = element.driver_lat; 
      driverlng = element.driver_lng; 
      locations.push([driverlat , driverlng]) 
    }); 

    for (i = 0; i < locations.length; i++) 
        { 

        var latlng1 = new google.maps.LatLng(locations[i][0], locations[i][1]); 
       drivermarker=new google.maps.Marker({position:latlng1}); 
       drivermarker.setMap(map); 
       var infowindow = new google.maps.InfoWindow(); 
       google.maps.event.addListener(drivermarker, 'click', (function(marker, i) { 
       return function() { 
       infowindow.setContent(locations[i][0]); 
       infowindow.open(map, drivermarker); 

      } 
      })(drivermarker, i)); 
        } 

    } 
    }); 

    } 
1

這裏是帶電作業代碼你我的朋友,試試這個100%的工作代碼

///your locations array 
 
var locations = [ 
 
    ['Bondi Beach', 49.2234, 55.303423, 1], 
 
    ['Coogee Beach', 50.3023, 101.05342, 2], 
 
    ['Cronulla Beach', 59.125435, 105.15234, 3], 
 
    ['Manly Beach', -33.80010128657071, 151.28747820854187,4], 
 
    ['Maroubra Beach', -33.950198, 151.259302, 5], 
 
    ['erf Beach', -33.950198, 151.000000, 6], 
 
    ['fgh Beach', -33.950198, 150.400302, 7], 
 
    ['mnb Beach', -33.950198, 150.900302, 8], 
 
    ['abc Beach', -33.262, 150.700302, 9], 
 
    ['xyz Beach', -33.3672378, 150.800302, 10], 
 
    ['hhhhhhh Beach', -34.34568768, 150.83267211914062, 11], 
 
    ['Bondi Beach 1', -33.23547564, 151.274856, 1], 
 
    ['Coogee Beach 2', -33.96435, 151.259052, 2], 
 
    ['Cronulla Beach 3', -34.67845234, 151.157507, 3], 
 
    ['Manly Beach4', -33.3478899, 151.28747820854187,4], 
 
    ['Maroubra Beach5', -33.132425576, 151.259302, 5] 
 
]; 
 

 
var map; 
 
var markers = []; 
 

 
function init() 
 
{ 
 
    map = new google.maps.Map(document.getElementById('map'), { 
 
\t zoom: 8, 
 
\t center: new google.maps.LatLng(-33.92, 151.25), 
 
\t mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 

 
    var num_markers = locations.length; 
 
    for (var i = 0; i < num_markers; i++) { // alert(locations[i][1]+'===='+locations[i][2]+'=='+locations[i][0]); 
 
\t markers[i] = new google.maps.Marker({ 
 
\t position: {lat:locations[i][1], lng:locations[i][2]}, 
 
\t map: map, 
 
\t html: locations[i][0], 
 
\t id: i, 
 
\t }); 
 

 
\t google.maps.event.addListener(markers[i], 'click', function(){ 
 
\t var infowindow = new google.maps.InfoWindow({ 
 
\t \t id: this.id, 
 
\t \t content:this.html, 
 
\t \t position:this.getPosition() 
 
\t }); 
 
\t google.maps.event.addListenerOnce(infowindow, 'closeclick', function(){ 
 
\t \t markers[this.id].setVisible(true); 
 
\t }); 
 
\t this.setVisible(false); 
 
\t infowindow.open(map); 
 
\t }); 
 
    } 
 
    
 
} 
 

 

 
$(document).ready(function() { 
 
\t google.maps.event.addDomListener(window, 'load', init); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry,drawing"></script> 
 

 
<div id="map" style="width: 100%; height: 500px;"></div>

+0

謝謝:) @Manjeet –

+0

歡迎尊敬的@AnkitSharma ,.讓我知道天氣這段代碼是否適合你? –

+0

它適合我。[鏈接](http://stackoverflow.com/questions/36351013/showing-nearest-multiple-markers-on-google-map-api-js-v3-from-current-position-o)請在這個問題幫助我 –

相關問題