0

私はGoogleマップ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);

メーカーでデータベースの値を設定するのを手伝ってください。値はサーブレットから取得されます。

4

1 に答える 1

3

データベースと通信し、その詳細をJSON配列として返すPHP(または使用する言語)ページを作成できます。そのため、ajaxを介して簡単に呼び出して、必要な値を取得できます。サーブレットを使用している場合GSONライブラリは、オブジェクトを JSON に変換するときに役立ちます。ただし、緯度、経度、および名前を含むデータベース テーブルが必要です。

多分このコードはあなたを助けるでしょう、あなたのサーブレットの doGet() または doPost() の中にこれを書いてください

            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);

これは、javascript で取得するときに役立ちます。そのために jquery を使用することをお勧めします。

このコードを試して、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); 
    }
});
于 2013-10-01T07:46:18.943 に答える