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。

4

1 回答 1

3

您可以编写一个与数据库联系的 PHP(或您使用的任何语言)页面,并将其中的详细信息作为 JSON 数组返回。这样您就可以通过 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);

在 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 回答