如何使用谷歌map3在struts2中绘制折线

时间:2013-04-22 06:29:01

标签: java javascript google-maps struts2

我希望我的项目具有this功能。

我正在尝试提供功能,Onbutton单击,我从MySQL获取坐标数据到一个数组,然后将此数组放到文本框的值,以便JavaScript读取此值。但是当我将var坐标值设置为折线时,它显示为空白,当我从文本框中复制相同的值并将其设置为相同的var时,它将起作用。

Java代码:

try {
Connection.getConnection();
java.sql.PreparedStatement preparedStatement = Connection.con
                .prepareStatement("select * from co_ordinates_data");

        resultSet = preparedStatement.executeQuery();

        while (resultSet.next()) {

            latitude.add(resultSet.getDouble("latitude"));
            longitude.add(resultSet.getDouble("longitude"));

            latlong.add("new google.maps.LatLng("
                    + resultSet.getDouble("latitude") + ","
                    + resultSet.getDouble("longitude") + ")");

        }

        size = latitude.size();

    } catch (Exception e) {
        System.out.println("path exception " + e.toString());
    }
    return "execute";

//textbox
<input type="text" id="latlng" value="<s:property value="latlong"/>"

here is my js code:

function initialize() {
    var myLatLng = new google.maps.LatLng(28.493729, 77.09255);
    var mapOptions = {
        zoom : 8,
        center : myLatLng,
        mapTypeId : google.maps.MapTypeId.ROADMAP
    };

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

    var cordinates = document.getElementById("latlng").value;


    var flightPlanCoordinates = [cordinates ];

    var flightPath = new google.maps.Polyline({
        path : flightPlanCoordinates,
        strokeColor : "#FF0000",
        strokeOpacity : 1.0,
        strokeWeight : 2
    });

    flightPath.setMap(map);
}

1 个答案:

答案 0 :(得分:0)

可能问题在于,当您运行initialize() Javascript函数时,页面未完全加载,并且尚未呈现包含您的坐标的<input />元素;

尝试从javascript控制台调用initialize()(在Firefox中, CTRL + SHIFT + K ),看看是否有的工作原理。

您需要在jQuery $(document).ready() 函数(more info here)中附加对您的javascript的调用,或者将您的javascript函数移出{ {1}}部分,将其放在<head>部分的末尾(不推荐)。

示例:

<body>