如何使用数据库值设置谷歌地图标记

时间:2013-10-01 07:40:05

标签: javascript google-maps-api-3 google-maps-markers

我是google maps 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。

1 个答案:

答案 0 :(得分:3)

您可以编写与数据库联系的PHP(或您使用的任何语言)页面,并将其中的详细信息作为JSON Array返回。您可以通过ajax轻松调用它并检索所需的值。如果您正在使用servlet GSON库在将对象转换为JSON时非常有用。但是,您应该有一个包含纬度,经度和名称的数据库表。

也许这段代码可以帮助你,在你的servlet中写入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);

并且this会在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); 
    }
});