使用WordPress在Google map版本3上查找WP作者
我有这些代码,它们使用经度和纬度在谷歌地图上定位帖子: 头球进洞使用WordPress在Google map版本3上查找WP作者,wordpress,google-maps,google-maps-api-3,Wordpress,Google Maps,Google Maps Api 3,我有这些代码,它们使用经度和纬度在谷歌地图上定位帖子: 头球进洞 <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 shado
<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>
var infowindow=new google.maps.infowindow();
var pinkmarker=newgoogle.maps.MarkerImage('/wp content/themes/mappemo/pink_umarker.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));
函数初始化(){
map=new google.maps.map(document.getElementById('map'),{
缩放:6,
中心:新google.maps.LatLng(37.5407246,-77.4360481),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
对于(var i=0;i
体内
<?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; ?>
使用lat lng作为输入并检索地址的过程称为反向地理编码(正常地理编码将地址作为输入并返回lat lng)。谷歌提供了一些地理编码选项:
- 提供了以JavaScript客户端为中心的服务的概述,该服务旨在用于响应web页面上动态用户交互的JavaScript代码中
- Google提供了对API web服务的介绍,该服务旨在在服务器端更多地用于预先知道的地址,而不是用于支持动态地图交互
我将两者都包括在内,因为看起来您正在处理静态数据。但我不确定你到底想实现什么,所以地理编码服务可能更适合你,或者将来会有用。请记住,这两个选项的服务条款要求您使用在谷歌地图上下文中检索的数据,并且数据不会保存以构建地理编码数据目录。还有使用限制和其他限制,因此您需要仔细阅读这些部分。我希望这就是您所寻找的,这有助于-我希望在这里使用author\u meta\u标记,例如我添加到管理区域中的用户文件中的地址,并在地图上精确定位他们的位置。由于您已经拥有地址,您可能只需要通过地理编码API运行地址。您可以发送带有地址的请求,获取lat lng,然后使用lat lng在地图上放置标记。另外,我从您的JavaScript代码中注意到您正在使用Google Maps v2。那个版本已经被否决了,所以你应该考虑升级到V3。是的,但是我很难实现它。我知道我应该使用地址作为变量,并通过每个订户地址循环,以确定其在地图上的位置,但无法使其工作。你能给我指出一个示例代码吗?我正试图帮助你,但你的问题一直在变化。你目前的问题到底是什么?除了你无法工作的问题之外,你还想通过新的billerickson.com实现什么?
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;