1

gmaps.js を使用して、世界中の 50 以上のアドレスをループし、マップにマーカーを追加したいと考えています。別の質問への素晴らしい回答のおかげで、私はそれを解決したと思っていました。

gmaps.js - 要素をループしてマーカーを追加する

要するに、そこにある正確な答えを使用します(ライブの例http://jsfiddle.net/w8bvR/3/ )。

スクリプト側

    var map = new GMaps({
    div: '#mapCanvas',
    lat: 0,
    lng: 52,
    zoom: 13,
    width: '600px',
    height: '400px'
});

var popupTemplate = '<div class="popupText"><h3>%1</h3><p>%2</p></div>';
var location = $('#location').text();

$('.blist p').find('br').replaceWith(', ');

$(".blist").each(function() {
    var title = $(this).find("h3").text();
    var address = $(this).find("p.address").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)
                    }
                });
            }
        }
    });
});

HTML 側

    <div id="mapCanvas"></div>
<h1 id="location">Phuket, Thailand</h1>

<div class="blist">
    <h3>APK Resort</h3>
    <p class="address">95 Ratchapratanusorn road<br>Kathu<br>Patong Beach 83150<br>Phuket<br></p>
</div>

<div class="blist">
    <h3>Patong Bay House</h3>
    <p class="address">160/5 Phungmuang Sai kor Rd<br>Phuket<br>Patong Beach 83150<br>Kathu<br></p>
</div>

<div class="blist">
    <h3>Bel Aire Resort</h3>
    <p class="adress">59/1-3 Sainamyen Rd Patong Kathu<br>Phuket<br>Patong Beach 8310<br>T<br></p>
</div>

ただし、何らかの理由で、mysql からアドレス viva PHP をフェッチして 50+ を作成すると、作成した mysql からどのような順序または選択を行っても、マップするマーカーは 11 個しか追加されません。Google APIは、少なくともそのレベルには制限がないと主張しているため、11に制限する理由に少し迷っています。どんな助けでも感謝します。

私が mysql/php から取得していることを見て、もっとエレガントな方法もあると確信していますが、どちらの専門家もいません。

4

1 に答える 1

1

問題は、コードが OVER_QUERY_LIMIT エラーをチェックせず、適切に処理しないことです。そのケースを処理しないと、Geocoding Service から約 10 の応答が返されます (ご覧のとおり)。

于 2013-01-14T00:07:37.313 に答える