釣り場の場所を表示するためにGmapsシステムが統合されたWordpressを使用してサイトを作成しています。各州に関連付けられた投稿と、カスタムフィールドに入力された経度と緯度が入力されます。マップは正常に機能します。問題は、一部の州に1000以上のマーカーがあるため、ページの読み込みに多少の遅れが生じ、マーカーが互いに積み重なって使用するのがばかげていることです。私たちがやりたいのは、マーカーを表示する前にピンの数に制限を設けることです。明確にするために:
- カリフォルニアには1000以上の湖がありますが、例としてアリゾナには約165の湖しかありません。合計が200を超える場合は、「エントリが多すぎます。ズームインして選択範囲を表示してください」などの簡単なメッセージが訪問者に表示されます。それで、
- ズームインすると、合計が再計算され、200未満になると(または実際に設定された制限があれば、それを超える状態が非常に多くなります)、ズームインされた領域に応じてマーカーが表示されます。
状態ページに到達したときのビューには、状態全体とすべてのマーカーが表示されます。カウントが200を超える場合は、ズームインするなどのメッセージを表示するだけです。最終的には50,000を超える湖がリストされるため、この変更はページの読み込みに大いに役立ちます。
データを取得して地図を表示する、現在使用しているコードは次のとおりです。
<script type="text/javascript">
jQuery(document).ready(function(){
function initialize() {
var myLatlng = new google.maps.LatLng(<?php echo $center_final; ?>);
var myOptions = {
zoom: <?php echo $zoom; ?>,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.<?php echo $type; ?>
};
var map = new google.maps.Map(document.getElementById("featured_overview"), myOptions);
<?php if(get_option('woo_maps_archive_scroll') == 'true'){ ?>
map.scrollwheel = false;
<?php } ?>
<?php foreach($coords as $c_key => $c_value) { ?>
var point = new google.maps.LatLng(<?php echo $c_value['coords']; ?>);
var root = "<?php bloginfo('template_url'); ?>";
var the_link = '<?php echo get_permalink($c_key); ?>';
<?php $title = str_replace(array('“','”'),'"',get_the_title($c_key)); ?>
<?php $title = str_replace('–','-',$title); ?>
<?php $title = str_replace('’',"`",$title); ?>
<?php $title = str_replace('&','&',$title); ?>
var the_title = '<?php echo html_entity_decode($title) ?>';
var color = '<?php echo $c_value['color']; ?>';
createMarker(map,point,root,the_link,the_title,color);
<?php } ?>
}
initialize();
});
</script>
どんな助けでも大歓迎です。皆様、ありがとうございました。