Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
Javascript 谷歌地图v3数组标记_Javascript_Jquery_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图v3数组标记

Javascript 谷歌地图v3数组标记,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,为什么我不能在Google Maps V3中显示多个标记,我得到了正确的坐标,但没有显示在地图上。控制台中也没有错误 地图项目[0]=标题 地图项目[1]=55.153766,11.909180 地图项目[2]=链接 映射项[3]=文本 如果我发出警报,它们都会正确显示。 范例 “标题”,“51.00150763193481,-2.56592849999272”,“链接”,“文本” 函数初始化(){ var map=new google.maps.map(document.getElementB

为什么我不能在Google Maps V3中显示多个标记,我得到了正确的坐标,但没有显示在地图上。控制台中也没有错误

  • 地图项目[0]=标题
  • 地图项目[1]=55.153766,11.909180
  • 地图项目[2]=链接
  • 映射项[3]=文本
  • 如果我发出警报,它们都会正确显示。 范例

    “标题”,“51.00150763193481,-2.56592849999272”,“链接”,“文本”

    函数初始化(){
    var map=new google.maps.map(document.getElementById('map'){
    缩放:7,
    中心:新google.maps.LatLng(55.15376611.909180),
    mapTypeId:google.maps.mapTypeId.ROADMAP
    });
    对于(变量x=0;x'+map_items[3]+'

    '); 信息窗口。打开(地图、标记); }); } } }
    google.maps.LatLng()接受两个参数,而不是一个,因此:

    var latlon = map_items[1].split(',');
    var myLatlng = new google.maps.LatLng(parseFloat(latlon[0]), parseFloat(latlon[1]));
    
    尽管事实上,最好使用对象,而不是每个项目都包含不同数据类型的数组,例如:

    marker_data[0] = {
      "lat": 55.153766,
      "lon": 11.909180,
      "title": "My Title",
      "link": "http://stackoverflow.com"
    }
    //etc...
    
    然后你可以这样访问它:

    var myLatlng = new google.maps.LatLng(marker_data[0].lat, marker_data[0].lon);
    

    假设
    map\u项[1]
    为字符串

    if (temp[x][1]) {
        var map_items = temp[x];
        var latlng = map_items[1].split(",");
        var myLatlng = new google.maps.LatLng(parseFloat(latlng[0]), parseFloat(latlng[1]));
        var marker = new google.maps.Marker({
            map: map,
            position: myLatlng,
            title: map_items[0]
        });
        google.maps.event.addListener(marker, 'click', function() {
            infowindow.setContent('<div class="google_marker"><a href="' + map_items[2] + '">' + map_items[0] + '</a><br /><p>' + map_items[3] + '</p></div>');
            infowindow.open(map, marker);
        });
    }
    
    if(临时[x][1]){
    var map_items=temp[x];
    var latlng=映射项[1]。拆分(“,”);
    var mylatng=new google.maps.LatLng(parseFloat(LatLng[0]),parseFloat(LatLng[1]);
    var marker=new google.maps.marker({
    地图:地图,
    职位:myLatlng,
    标题:地图项目[0]
    });
    google.maps.event.addListener(标记'click',函数(){
    infowindow.setContent('
    '+map_items[3]+'

    '); 信息窗口。打开(地图、标记); }); }
    我认为当您单击任何标记时,只有最后一个地图项目可用。创建不同的上下文可能会解决您的问题

    function initialize() {
                    var map = new google.maps.Map(document.getElementById('map'), {
                        zoom: 7,
                        center: new google.maps.LatLng(55.153766, 11.909180),
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                    });
                    function AttachEventToMarker(marker, map_items){
    
                        google.maps.event.addListener(marker, 'click', function() {
                           infowindow.setContent('<div class="google_marker"><a href="'+map_items[2]+'">'+map_items[0]+'</a><br /><p>'+map_items[3]+'</p></div>');
                           infowindow.open(map, marker);
                        });
                    }
    
                    for (var x = 0; x < temp.length; x++) {
                        if(temp[x][1]){
                            var map_items = temp[x];
                            var myLatlng = new google.maps.LatLng(map_items[1]);
                            var marker = new google.maps.Marker({
                                map: map,
                                position: myLatlng,
                                title: map_items[0]
                            });
                             AttachEventToMarker(marker, map_items);
                        }
                    }
                }
    
    函数初始化(){
    var map=new google.maps.map(document.getElementById('map'){
    缩放:7,
    中心:新google.maps.LatLng(55.15376611.909180),
    mapTypeId:google.maps.mapTypeId.ROADMAP
    });
    功能附件VentToMarker(标记、地图项目){
    google.maps.event.addListener(标记'click',函数(){
    infowindow.setContent('
    '+map_items[3]+'

    '); 信息窗口。打开(地图、标记); }); } 对于(变量x=0;x
    变量temp是在哪里创建的,您确定它包含数据吗?temp变量大约有200行长,但它是正确的,只是标记显示不起作用它起作用了,为什么?该变量中有两个坐标有两个坐标,但变量是字符串。它与“我的标题”相同,它有两个单词,但除非拆分它,否则变量仅为一个字符串。
    function initialize() {
                    var map = new google.maps.Map(document.getElementById('map'), {
                        zoom: 7,
                        center: new google.maps.LatLng(55.153766, 11.909180),
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                    });
                    function AttachEventToMarker(marker, map_items){
    
                        google.maps.event.addListener(marker, 'click', function() {
                           infowindow.setContent('<div class="google_marker"><a href="'+map_items[2]+'">'+map_items[0]+'</a><br /><p>'+map_items[3]+'</p></div>');
                           infowindow.open(map, marker);
                        });
                    }
    
                    for (var x = 0; x < temp.length; x++) {
                        if(temp[x][1]){
                            var map_items = temp[x];
                            var myLatlng = new google.maps.LatLng(map_items[1]);
                            var marker = new google.maps.Marker({
                                map: map,
                                position: myLatlng,
                                title: map_items[0]
                            });
                             AttachEventToMarker(marker, map_items);
                        }
                    }
                }