Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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/0/svn/5.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
Google maps 为标记设置信息窗口,并在循环中进行地理编码_Google Maps_Infowindow - Fatal编程技术网

Google maps 为标记设置信息窗口,并在循环中进行地理编码

Google maps 为标记设置信息窗口,并在循环中进行地理编码,google-maps,infowindow,Google Maps,Infowindow,下面的代码正在运行。但是它没有使用标准函数initialized,这就是为什么我不能使用在线示例为地图上的每个地址创建自定义信息窗口的原因 为了让它工作,我必须如何定义它 var address = <?php echo json_encode($adr); ?>; //define address array here var map = new google.maps.Map(document.getElementById('map'), { mapTypeId: goo

下面的代码正在运行。但是它没有使用标准函数initialized,这就是为什么我不能使用在线示例为地图上的每个地址创建自定义信息窗口的原因

为了让它工作,我必须如何定义它

var address = <?php echo json_encode($adr); ?>; //define address array here
var map = new google.maps.Map(document.getElementById('map'), {
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    zoom: 10
});    
var geocoder = new google.maps.Geocoder();
var image = 'http://www.site.com/images/hi.png';
var nbAddresses = address.length;
for (var i=0;i<nbAddresses;i++){
    geocoder.geocode({
        'address': address[i]
    }, 
    function(results, status) {
        if(status == google.maps.GeocoderStatus.OK) {
            new google.maps.Marker({
                position: results[0].geometry.location,
                map: map,
                icon: image,
                title:"Hello"
            });
            map.setCenter(results[0].geometry.location);
        }
    });
}    
var地址=//在这里定义地址数组
var map=new google.maps.map(document.getElementById('map'){
mapTypeId:google.maps.mapTypeId.ROADMAP,
缩放:10
});    
var geocoder=new google.maps.geocoder();
var图像处理http://www.site.com/images/hi.png';
var nbAddresses=address.length;

对于(var i=0;i,这里是应该完成这项工作的Javascript

脚本:

geocoder.geocode({
        'address': add
    }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            mark = new google.maps.Marker({
                position: results[0].geometry.location,
                map: map
            });
            map.setCenter(results[0].geometry.location);
            setInfoWindow();
        }
    });

    function setInfoWindow() {
        google.maps.event.addListener(mark, 'click', function(event) {
            var iwindow = new google.maps.InfoWindow();
            iwindow.setContent(event.latLng.lat() + "," + event.latLng.lng());
            iwindow.open(map, this);

        });
    }
更新: 使用循环演示如何在地理编码成功后将标题值分配给制作人-


这里的关键是用于获取地址的循环变量在子函数的作用域中不可用,因此您需要创建一个全局变量并将其递增,以便从标题数组中获取新值。

您没有在代码中的任何位置放置信息窗口。您能再次定义您的需求吗?是的Cdeez,我尝试调用Infowindow的功能各不相同,但都没有成功,所以我在上面留下了清晰的工作代码,希望有人能在infowindow弹出窗口的示例中包含缺少的部分,并将其放置在上面代码中必须包含的位置-我确信我可以自定义它。希望您理解我请求的核心,谢谢!好的。您需要单击标记事件时的信息窗口,还是在创建标记时将其放置?单击事件时,请再次感谢!太棒了!:)我根据我的地址自定义了它,它正在工作。。“address”还有最后一个问题:add是一个数组。如何在js中循环一个php数组,查找地图上每个标记的标题。例如,我有$title[]php数组,如何使用上面的js代码获得每个地址自己的标题。再次感谢你!你保护了我的一周:)我对php一无所知。在asp.net中,通常将数组转换为javascript数组,然后像使用地址一样使用
address[i]
。同样地,将php数组转换为js数组(谷歌搜索一下就可以了),你应该能够以同样的方式设置标题。Cdeez,很抱歉把你弄糊涂了,我不清楚我的问题。我使用json:var title=,将Php数组转换为js数组;在我发出警报(标题)后,我收到带有标题的数组,但由于我不熟悉js脚本,我不知道如何和在何处循环它,也不知道如何和在何处包含它。。这可能非常简单,但正如我所说,我对js一点也不熟悉:)我是这里的新用户,因此不能投票,但只接受你的回答:(很抱歉没有给你带来好处!你是最好的!问题已经解决,直到下一个问题出现:))真的很感谢你的帮助Cdeez!!!