2013-10-01 82 views
0

我是新的谷歌地圖API。我用硬核值作爲標記創建一張地圖。但我想用來自數據庫的值創建我的標記。這裏是我的代碼如何設置谷歌地圖標記與數據庫值

function initialize() { 

     var map = new google.maps.Map(document.getElementById("map_canvas"), { 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      streetViewControl: false 
     }); 

     var markers = [    // Here I set the hard core values for my markers. 
      { lat: 22.64201389, lng: 88.43034722, name: "Airport" }, 
      { lat: 22.60944444, lng: 88.42694444, name: "Baguihati" }, 
      { lat: 22.53604167, lng: 88.36083333, name: "Ballygunge Phari" }, 
      { lat: 22.49895833, lng: 88.31902778, name: "Behala" }, 
      { lat: 22.65743056, lng: 88.36409722, name: "Dakshineshwar" }, 
      { lat: 22.62013889, lng: 88.39215278 , name: "Dum-Dum Station." }, 
      { lat: 22.52111111, lng: 88.36479167, name: "Gariahat" }, 
      { lat: 22.58763889, lng: 88.34027778, name: "Howrah" }, 
      { lat: 22.59131944, lng: 88.43291667, name: "Karunamayee East" }, 
      { lat: 22.52131944, lng: 88.38201389, name: "Kasba Bosepukur" }, 
      { lat: 22.60256944 , lng: 88.40166667 , name: "Lake Town" }, 
      { lat: 22.68993056, lng: 88.47569444, name: "Madhyam Gram_East" }, 
      { lat: 22.50875 , lng: 88.33284722 , name: " New Alipur" }, 
      { lat: 22.54409722 , lng: 88.36743056, name: "Park circus" }, 
     ]; 

     for (index in markers) addMarker(markers[index]); 
     function addMarker(data) { 
      new google.maps.Marker({ 
       position: new google.maps.LatLng(data.lat, data.lng), 
       map: map, 
       title: data.name 
      }); 

     } 

     var bounds = new google.maps.LatLngBounds(); 
     for (index in markers) { 
      var data = markers[index]; 
      bounds.extend(new google.maps.LatLng(data.lat, data.lng)); 
     } 
     map.fitBounds(bounds); 

請幫我設置製造商的數據庫值..這些值將來自servlet。

+0

你有緯度,經度保存在你的數據庫? –

+0

Java和JavaScript是2種完全不同的語言! –

+0

我不知道,但我想去Ballygunge Phari。這是有史以來最好的地名。 –

回答

3

您可以編寫一個與數據庫聯繫的PHP頁面(或任何您使用的語言),並將其中的詳細信息作爲JSON數組返回。因此,您可以通過ajax輕鬆調用它並檢索所需的值。如果將對象轉換爲JSON時,使用servlet GSON庫會很有用。但是,您應該有一個包含緯度,經度和名稱的數據庫表。

也許這代碼會幫助你,在你的servlet寫這裏面的doGet()或doPost()在javascript.I檢索更喜歡使用jQuery的,當它

  Gson gson = new Gson(); 
      java.sql.Connection con = new DBConn().getConnection(); //establish the database connection you use 

      String getquery = "SELECT * from markers"; 

      ResultSet res = DBHandle.getData(con, getquery); 
      ArrayList<Marker> markerList; 
      markerList = new ArrayList<Marker>(); 

      while (res.next()) { 

       Marker marker=new Marker(); //model class with attributes latitude,longitude and name along with their getters and setters 
       marker.setLatitude(res.getString("latitude")); 
       marker.setLongitude(res.getString("longitude")); 
       marker.setName(res.getString("name")); 
       markerList.add(marker); 

      } 
      String JsonString = gson.toJson(markerList, ArrayList.class); 
      out.print(JsonString); 

而且this會幫助你。

你可以試試這個代碼通過jQuery檢索它

$.getJSON("url_with_json_here", function(data){ 
    for (var i=0, len=data.length; i < len; i++) { 
    data[i].latitude; 
    console.log(data[i].name); 
    console.log(data[i].longitude); 
    console.log(data[i].latitude); 
    } 
}); 
+0

String JsonString = gson.toJson(markerList,ArrayList.class); out.print(JsonString);這會返回一個json對象。現在如何讀取JSON並將其放在地圖中? – BlueShark

+0

檢查答案。我編輯它。 –