Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春天的谷歌地图_Java_Spring_Jsp_Google Maps - Fatal编程技术网

Java 春天的谷歌地图

Java 春天的谷歌地图,java,spring,jsp,google-maps,Java,Spring,Jsp,Google Maps,我有一个相当大和神秘的问题。我想动态地将标记添加到放置在JSP页面上的GoogleMap中,并使用数据库中的坐标 所以我的代码看起来像这样: <script type="text/javascript"> var map; var markers = []; function initialize() { var options = {

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

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

    <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>

var映射;
var标记=[];
函数初始化(){
变量选项={
mapTypeControlOptions:{
MapTypeId:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.TERRAIN],
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单
}
}
var wysokoscCenter=“”;
var szerokoscCenter=“”;
map=newgoogle.maps.map(document.getElementById('map');
map.setCenter(新的google.maps.LatLng(wysokoscCenter,szerokoscCenter));
map.setZoom(17);
setMapTypeId(google.maps.MapTypeId.ROADMAP);
addMarker(新的google.maps.LatLng(koordynatydails.getWysokosc(),koordynatydails.getSzerokosc()),“Marker”);
}
功能添加标记(latlng,myTitle){
markers.push(新的google.maps.Marker)({
位置:latlng,
地图:地图,
标题:我的标题,
图标:“http://maps.google.com/mapfiles/marker“+String.fromCharCode(markers.length+65)+”“.png”
}));
}

我检查了
addMarker
函数,每个坐标都传递得很好,但地图没有显示出来。我真的不知道如何解决这个问题/

看起来图像的路径错误,请尝试以下操作

改变

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

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

如果上述更改将图标添加到地图中,则可以确认
字符串.fromCharCode(markers.length+65)
中存在错误。您添加带有A、B、C等图标的逻辑似乎很好。我怀疑
marker+String.fromCharCode(markers.length+65)

如果硬编码的标记路径有效,则尝试用sngle引号替换双引号(如以下代码中所示开始和结束)

更新:

进行了一些修改,以使地图和标记能够正常工作


您可以看到地图已显示并添加了标记。请通读修复代码

我注意到你的小提琴中有一句话:

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

在第一个参数中有一个额外的空格。当我将
52.2319262 32898
更改为
52.231926232898
时,小提琴工作正常。所以,请查看填充这些变量的数据。

console中是否有错误?没有。根本没有错误。只有地图没有显示。你能“刮”服务器生成的代码,把它变成JS文件(和/或把代码也发布在这里)吗?你能让它的静态版本按预期运行吗?是的,我能,但我今天晚些时候(晚上)会这样做。你从哪里得到MarkerySokosc的值?Markerwisokosc的格式是什么?是逗号分隔的吗?好的,我改了。此时此刻,我真的不知道如何在JSFIDLE中链接一些数据库来向您表明它不起作用/你必须“分而治之”,我会先消除数据,尽可能解决问题。首先让jsp文件能够很好地处理静态数据,就像小提琴一样。然后计算出数据库的内容。
 addMarker(new google.maps.LatLng(52.2319262 32898, 21.019806861877), "Alien");