3

私はかなり大きくて不思議な問題を抱えています。データベースの座標を使用して、JSPページに配置されたGoogleマップにマーカーを動的に追加したいと思います。

だから私のコードはこのように見えます:

    <script type="text/javascript">
                var map;
                var markers = [];

                function initialize() {
                    var options = {
                        mapTypeControlOptions: {
                            mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN],
                            style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
                        }
                    }

                <%
                    String id_wydarzenia_session = null;
                    List<Koordynaty> koordynaty = null;
                    Double szer = null;
                    Double wys = null;
                    try {
                        id_wydarzenia_session = session.getAttribute("id_wydarzenia").toString();
                        WydarzenieDaoImpl wydarzeniedao = new WydarzenieDaoImpl();
                        koordynaty = wydarzeniedao.pobierzKoordynatyWydarzenia(id_wydarzenia_session);
                    } catch (Exception e) {
                        System.out.println(e.getMessage());
                    }


                %>
                    var wysokoscCenter = "<%=koordynaty.get(0).getSzerokosc()%>";
                    var szerokoscCenter = "<%=koordynaty.get(0).getWysokosc()%>";
                    map = new google.maps.Map(document.getElementById('map'));
                    map.setCenter(new google.maps.LatLng(wysokoscCenter, szerokoscCenter));
                    map.setZoom(17);
                    map.setMapTypeId(google.maps.MapTypeId.ROADMAP);

                <%
                    Iterator<Koordynaty> iteratorKoordynaty = koordynaty.iterator();
                    while (iteratorKoordynaty.hasNext()) {
                        Koordynaty koordynatyDetails = iteratorKoordynaty.next();
                %>
                    addMarker(new google.maps.LatLng(koordynatyDetails.getWysokosc(), koordynatyDetails.getSzerokosc()), "Marker");
                <%
                    }
                %>

                }
                function addMarker(latlng, myTitle) {
                    markers.push(new google.maps.Marker({
                        position: latlng,
                        map: map,
                        title: myTitle,
                        icon: "http://maps.google.com/mapfiles/marker" + String.fromCharCode(markers.length + 65) + ".png"
                    }));
                }
            </script>

すべての座標が正常に渡されることを関数でチェックインしましaddMarkerたが、マップが表示されません。私は本当にこれを修正する方法を本当に知りません;/

4

2 に答える 2

1

私はあなたのフィドルに何かに気づきました、行:

 addMarker(new google.maps.LatLng(52.2319262 32898, 21.019806861877), "Alien");

最初のパラメータに余分なスペースがあります。私がフィドルに変更52.2319262 32898すると52.231926232898うまくいきます。したがって、これらの変数に入力するデータを確認してください。

于 2013-02-28T22:51:50.747 に答える
0

画像へのパスが間違っているようです。これを試してください

変化する

icon: "http://maps.google.com/mapfiles/marker" + String.fromCharCode(markers.length + 65) + ".png"

http://maps.google.com/mapfiles/marker.png

上記の変更によりマップにアイコンが追加された場合は、に何か問題があることを確認できますString.fromCharCode(markers.length + 65)。A、B、Cなどのアイコンを追加するロジックは問題ないようです。後の最終的なURLが疑われますmarker+String.fromCharCode(markers.length + 65)

ハードコードされたマーカーパスが機能する場合は、二重引用符を一重引用符に置き換えてみてください(以下のコードのように開始および終了するだけです)

icon: 'http://maps.google.com/mapfiles/marker" + String.fromCharCode(markers.length + 65) + ".png'

アップデート:

マップとマーカーを機能させるためにいくつかの変更が行われ 、コードの動作デモが表示されます

マップが表示され、マーカーが追加されていることがわかります。修正のためにコードに進んでください

于 2013-02-28T03:38:11.827 に答える