経度と緯度を使用してGoogleマップ上の投稿を見つけるこれらのコードがあります:ヘッダーに入る
<script type="text/javascript">
var infowindow = new google.maps.InfoWindow();
var pinkmarker = new google.maps.MarkerImage('/wp-content/themes/mapdemo/pink_Marker.png', new google.maps.Size(20, 34) );
var shadow = new google.maps.MarkerImage('/wp-content/themes/mapdemo/shadow.png', new google.maps.Size(37, 34) );
function initialize() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: new google.maps.LatLng(37.5407246, -77.4360481),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
for (var i = 0; i < locations.length; i++) {
var marker = new google.maps.Marker({
position: locations[i].geometry.location,
icon: pinkmarker,
shadow: shadow,
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i].info);
infowindow.open(map, marker);
}
})(marker, i));
}
}
</script>
体内で
<?php if ( have_posts() ) : ?>
<!-- WordPress has found matching posts -->
<div style="display: none;">
<?php $i = 1; ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php if ( get_post_meta($post->ID, 'latlng', true) !== '' ) : ?>
<div id="item<?php echo $i; ?>">
<p><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a></p>
<?php the_content(); ?>
</div>
<?php endif; ?>
<?php $i++; ?>
<?php endwhile; ?>
</div>
<script type="text/javascript">
var locations = [
<?php $i = 1; while ( have_posts() ) : the_post(); ?>
<?php if ( get_post_meta($post->ID, 'latlng', true) !== '' ) : ?>
{
latlng : new google.maps.LatLng<?php echo get_post_meta($post->ID, 'latlng', true); ?>,
info : document.getElementById('item<?php echo $i; ?>')
},
<?php endif; ?>
<?php $i++; endwhile; ?>
];
</script>
<div id="map" style="width: 100%; height: 700px;"></div>
<?php else : ?>
<!-- No matching posts, show an error -->
<h1>Error 404 — Page not found.</h1>
<?php endif; ?>
経度と緯度から住所に切り替えるのに苦労しています。正しい方向への助けに感謝します。
http://www.billerickson.netのおかげで、最近次のコードを使用しています。
if(is_single()):
global $post;
$address = get_post_meta($post->ID,'address',true);
if (!$address) $address = '123 Main St, Austin, TX';
$google_api_key = get_option('maps_key');
if($address): ?>
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=<?php echo $google_api_key; ?>" type="text/javascript"></script>
<div id="map_canvas" style="width: 100%; height: 100px"></div>
<script type="text/javascript">
function showAddress(address) {
var map = new GMap2(document.getElementById("map_canvas"));
var geocoder = new GClientGeocoder();
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
}
}
);
}
showAddress("<?php echo $address; ?>");
</script>
<?php endif;
endif;
対応する著者ページで著者アドレスを取得します。私が必要としているのは、配列を使用してすべての作成者を同じマップに配置することですが、マップを機能させるのにまだ苦労しています。