同様の質問が投稿されていることは知っていますが、特定の問題に関連しているため、それらのいずれも見つけて回答していません。
Google マップを使用して顧客の郵便番号をマップに配置する JavaScript があります。私が抱えている問題は、他の人がすでに投稿したものと似ています。「クエリ制限を超えています」というエラーが表示されます。
setTimeOut を使用して、許容される時間間隔内にデータを Google に送信しようとするさまざまな設定を試みましたが、動作させることができません。
これが私の行動です:
function initialize()
{
var rowNum = 0 ;
var rowColor = "" ;
var latlng = new google.maps.LatLng(27.91425, -82.842617);
var myOptions =
{
zoom: 7,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
geocoder = new google.maps.Geocoder();
data.forEach(function(mapData,idx)
{
window.setTimeout(function()
{
geocoder.geocode({ 'address': mapData.address}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: mapData.title,
icon: getIcon(mapData.type)
});
var contentHtml = "<div style='width:250px;height:90px'><strong>"+mapData.title+"</strong><br />"+mapData.address+"</div>";
var infowindow = new google.maps.InfoWindow({
content: contentHtml
});
google.maps.event.addListener(marker, 'click', function()
{
infowindow.open(map,marker);
});
marker.locid = idx+1;
marker.infowindow = infowindow;
markers[markers.length] = marker;
if (idx%2 == 0)
{
rowColor = 'style="background-color:#00FFFF;"' ;
}
else
{
rowColor = 'style="background-color:#FFFFFF;"' ;
}
var sideHtml = '<div ' + rowColor + ' class="loc" data-locid="'+marker.locid+'"><b>'+mapData.title+'</b><br/>';
sideHtml += mapData.address + '</div>';
$("#locs").append(sideHtml);
//Are we all done? Not 100% sure of this
if(markers.length == data.length) doFilter();
}
else
{
// alert("Geocode was not successful for the following reason: " + status);
}
}, 3000);
});
});
このアクションを使用してページを実行すると、JSON 文字列にそれよりも多くのマーカーがあるにもかかわらず、11 個のマーカーが返されます。window.setTimeout はまったく効果がありません。ここで何か間違ったことをしていることは明らかです。
この問題について何か助けていただければ幸いです。
ありがとう、