2016-01-28 27 views
1

我有一個頁面,我必須根據ajax成功結果顯示地圖和mysql結果。成功後,我將獲得經緯度。基於此我必須在地圖上標記位置。之後,每個搜索都會有過濾器。所以標記應該是全局數組。如何實現這個功能。根據搜索結果,地圖也應該自動居中放大。如何根據ajax結果顯示谷歌地圖?

function initialize() { 
    var latitude = 57.95, 
     longitude = 14.65, 
     radius = 8000, //how is this set up 
     center = new google.maps.LatLng(latitude,longitude), 
     bounds = new google.maps.Circle({center: center, radius: radius}).getBounds(), 
     mapOptions = { 
      center: center, 
      zoom: 9, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      scrollwheel: false 
     }; 

    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 

    setMarkers(center, radius, map); 
} 

function setMarkers(center, radius, map) { 
    var json = (function() { 
     var json = null; 
     $.ajax({ 
      'async': false, 
      'global': false, 
      'url': "js/hotels.json", 
      'dataType': "json", 
      'success': function (data) { 
       json = data; 
      } 
     }); 
     return json; 
    }) 

回答

0

因爲ajax請求是assync,所以您必須從您的ajax請求中設置成功函數中的標記。 因爲這個,返回json變量將不起作用。

你可以找到如何設置一個標記的谷歌地圖文檔中,就在這裏:https://developers.google.com/maps/documentation/javascript/examples/marker-simple

要根據標記的地圖縮放,你可以使用一個邊框。如何做到這一點可以在這裏找到:Google Map API v3 — set bounds and center