Javascript gmaps.js-循环元素并添加标记

Javascript gmaps.js-循环元素并添加标记,javascript,jquery,google-maps,loops,geocoding,Javascript,Jquery,Google Maps,Loops,Geocoding,使用 我如何循环使用(HTML)之类的内容: 普吉岛 一些酒店的名字 地址1 另一个酒店名称 地址2 某个名字 地址3 其他名字 地址4 …和: 地理编码+向地图添加标记 将中的名称添加到每个标记弹出窗口中 将链接添加到每个弹出窗口,并将链接添加到相应的弹出窗口(如锚定链接) 使用并添加所有地理代码锁定的位置,因为没有上下文,每个名称都不会说太多 我必须使用循环,但即使搜索了几个小时也没有找到任何好的示例。有人会认为这是一种常见的用法……) gmaps适配器使得这个功能变得非常简单 var m

使用 我如何循环使用(HTML)之类的内容:

普吉岛 一些酒店的名字 地址1

另一个酒店名称 地址2

某个名字 地址3

其他名字 地址4

…和:

  • 地理编码+向地图添加标记
  • 中的名称添加到每个标记弹出窗口中
  • 将链接添加到每个弹出窗口,并将链接添加到相应的弹出窗口(如锚定链接)
  • 使用并添加所有地理代码锁定的位置,因为没有上下文,每个名称都不会说太多
  • 我必须使用循环,但即使搜索了几个小时也没有找到任何好的示例。有人会认为这是一种常见的用法……)


    gmaps适配器使得这个功能变得非常简单

    var map = new GMaps({
        div: '#mapCanvas',
        lat: 0,
        lng: 52,
        zoom: 13,
        width: '400px',
        height: '300px'
    });
    
    var popupTemplate = '<div class="popupText"><h3>%1</h3><p>%2</p><p>%3</p></div>';
    
    $(".blist").each(function() {
        var title = $(this).find("h3").text();
        var address = $(this).find("p.address").text();
        var tel = $(this).find("p.tel").text();
        GMaps.geocode({
            address: address,
            callback: function(results, status) {
                if (status == 'OK') {
                    var latlng = results[0].geometry.location;
                    map.setCenter(latlng.lat(), latlng.lng());
                    map.addMarker({
                        lat: latlng.lat(),
                        lng: latlng.lng(),
                        title: title,
                        infoWindow: {
                            content: popupTemplate.replace('%1',title).replace('%2',address).replace('%3',tel)
                        }
                    });
                }
            }
        });
    });
    
    var-map=新的GMAP({
    分区:“#地图画布”,
    纬度:0,
    液化天然气:52,
    缩放:13,
    宽度:“400px”,
    高度:“300px”
    });
    变量popupTemplate='%1%2

    %3

    '; $(“.blist”)。每个(函数(){ var title=$(this.find(“h3”).text(); var address=$(this.find(“p.address”).text(); var tel=$(this.find(“p.tel”).text(); 地理编码({ 地址:地址:, 回调:函数(结果、状态){ 如果(状态=‘正常’){ var latlng=results[0]。geometry.location; map.setCenter(latlng.lat(),latlng.lng()); map.addMarker({ lat:latlng.lat(), lng:latlng.lng(), 标题:标题,, 信息窗口:{ 内容:popupTemplate.replace(“%1”,标题)。replace(“%2”,地址)。replace(“%3”,电话) } }); } } }); });

    注:

    • 演示中使用的伦敦酒店作为普吉岛地址的地理编码不可靠
    • 已添加电话号码字段

      • gmaps适配器使得这一点非常简单

        var map = new GMaps({
            div: '#mapCanvas',
            lat: 0,
            lng: 52,
            zoom: 13,
            width: '400px',
            height: '300px'
        });
        
        var popupTemplate = '<div class="popupText"><h3>%1</h3><p>%2</p><p>%3</p></div>';
        
        $(".blist").each(function() {
            var title = $(this).find("h3").text();
            var address = $(this).find("p.address").text();
            var tel = $(this).find("p.tel").text();
            GMaps.geocode({
                address: address,
                callback: function(results, status) {
                    if (status == 'OK') {
                        var latlng = results[0].geometry.location;
                        map.setCenter(latlng.lat(), latlng.lng());
                        map.addMarker({
                            lat: latlng.lat(),
                            lng: latlng.lng(),
                            title: title,
                            infoWindow: {
                                content: popupTemplate.replace('%1',title).replace('%2',address).replace('%3',tel)
                            }
                        });
                    }
                }
            });
        });
        
        var-map=新的GMAP({
        分区:“#地图画布”,
        纬度:0,
        液化天然气:52,
        缩放:13,
        宽度:“400px”,
        高度:“300px”
        });
        变量popupTemplate='%1%2

        %3

        '; $(“.blist”)。每个(函数(){ var title=$(this.find(“h3”).text(); var address=$(this.find(“p.address”).text(); var tel=$(this.find(“p.tel”).text(); 地理编码({ 地址:地址:, 回调:函数(结果、状态){ 如果(状态=‘正常’){ var latlng=results[0]。geometry.location; map.setCenter(latlng.lat(),latlng.lng()); map.addMarker({ lat:latlng.lat(), lng:latlng.lng(), 标题:标题,, 信息窗口:{ 内容:popupTemplate.replace(“%1”,标题)。replace(“%2”,地址)。replace(“%3”,电话) } }); } } }); });

        注:

        • 演示中使用的伦敦酒店作为普吉岛地址的地理编码不可靠
        • 已添加电话号码字段

        要让Google maps api在JSIDdle中运行,必须在URL的末尾添加
        type.js
        ,否则JSIDdle无法确定类型。整个url是
        http://maps.google.com/maps/api/js?sensor=true&type=.js
        这里有一种将链接与标记关联的方法。要让GoogleMapsAPI在JSIDdle中运行,必须在URL的末尾添加
        type.js
        ,否则JSIDdle无法确定类型。整个url是
        http://maps.google.com/maps/api/js?sensor=true&type=.js
        这里有一种将链接与标记关联的方法。这对于您给出的示例非常有用。不幸的是,我无法控制输出各种值的主后端,所以我得到的数据非常糟糕,需要进行后处理。如果能够通过名称+位置+国家(即“泰国普吉岛APK酒店”)进行地理定位,那就太好了示例:()适用于所有这些泰国街道名称,如果使用第一个值(在第一个
        之前)并添加位置+国家,即:“泰国普吉岛Ratchapratanusorn路95号”。使用mapsAPI v2但是..:/汤米,是的,我明白。你和我在泰国地址上遇到的问题一样,这就是为什么我在演示中切换到了英国地址。你可能会在未来找到一条路。它看起来确实很有希望。如果我正确理解了这篇文章,那么您可能需要每个地址的隐藏“拼写错误”版本,以使地理编码工作。在级联中?听起来更有趣,那就好了。然而,我今天注意到——在请求long/lat之后,Google Local实际上与Hotel Name+Location+Country一起工作。它不仅成功了,而且还正确地展示了一家酒店,该酒店在一个地区拥有两处相似的房产,根据所使用的服务,酒店的名称差异很大。不管怎样,使用谷歌本地来代替谷歌地图进行地理编码?这对于您给出的示例非常有用。不幸的是,我无法控制输出各种值的主后端,所以我得到的数据非常糟糕,需要进行后处理。如果能够通过名称+位置+国家(即“泰国普吉岛APK酒店”)进行地理定位,那就太好了示例:()适用于所有这些泰国街道名称,如果使用第一个值(在第一个
        之前)并添加位置+国家,即:“泰国普吉岛Ratchapratanusorn路95号”。使用mapsAPI v2但是..:/汤米,是的,我明白。你和我在泰国地址上遇到的问题一样,这就是为什么我在演示中切换到了英国地址。你可能会在未来找到一条路。它看起来确实很有希望。如果我正确理解了这篇文章,那么您可能需要每个地址的隐藏“拼写错误”版本,以使地理编码工作。在级联中?听起来更有趣,那就好了。然而我注意到