3

我有一个相当大而神秘的问题。我想将标记动态添加到放置在我的 JSP 页面上的谷歌地图中,​​并使用我的数据库中的坐标。

所以我的代码看起来像这样:

    <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 等添加图标的逻辑似乎很好。我怀疑后面的最终网址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 回答