5

私は Java EE を使用して、MySql データベースから人の住所を取得し、Google マップにその場所を表示する Web アプリケーションに取り組んでいます。

現在、Google マップを JSP に統合する方法がわからないため、手動で行っています。Javaでそうするための何らかの方向性を教えてください。

4

3 に答える 3

1

まず、データベースからすべての住所のリストを取得し、次に Google ジオコーダー サービスを使用して、それらの住所の緯度経度を取得します。サンプル コードは次のとおりです ( http://code.google.com/p/gmaps-samples/source/browse/trunk/geocoder/java/GeocodingSample.java?r=2476 )。その後、地図上に Google マップ マーカーを作成できます。サンプル コードは次のとおりですhttp://www.paulwest.co.uk/article.php/using-google-maps-api-to-mark-your-location-and -住所

それが役に立てば幸い。

于 2012-07-31T11:52:56.673 に答える
0

まず、サーブレットを使用する必要があります。このサーブレットはデータベースからデータを取得し、それをjson形式に変換します。

そして、ajaxを使用して、jsonデータが取得され、GoogleマップのJavaScriptAPIが使用されます。

于 2012-07-31T10:10:50.097 に答える
0

皆さん、このコードは最終的にとても幸せな気持ちになりました。ありがとうございます::

<sql:setDataSource var="enterdata" 
                driver="com.mysql.jdbc.Driver" 
                user="root" password="root" 
                url="jdbc:mysql://localhost/enterdata" />
            <sql:query var="list" dataSource="${enterdata}" 
            sql= "SELECT * from cropdata where FarmerName=\"${param.FarmerName}\"" />
            <script type="text/javascript" src="http://maps.google.com/maps/api/js?      sensor=false"></script>


           <script type="text/javascript">

var markers = [<c:forEach var="s" items="${list.rows}">
    ['Farmer Name :${s.FarmerName}<br>Crop Type:${s.CropName}',${s.Latitude},${s.longitude}],
            </c:forEach>        
];



function initializeMaps() {
var latlng = new google.maps.LatLng(markers[0][1],markers[0][2]);
var myOptions = {
    zoom: 18,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.SATELLITE,
    mapTypeControl: false
};
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < markers.length; i++) {  
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(markers[i][1], markers[i][2]),
        map: map
    });
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            infowindow.setContent(markers[i][0]);
            infowindow.open(map, marker);
        }
    })(marker, i));
}
}
于 2012-08-09T08:50:18.897 に答える