所以,我对WordPress中Google Maps的API和分解的自定义字段之间的交叉信号有点问题。我希望能够对从自定义字段中分解出来的地址进行地理编码,格式为“名称,地址”:
<?php
$trucks = get_post_meta($post->ID, "truck", false);
if ($trucks[0]=="") { ?>
<p>No Trucks Operating Today</p>
<?php } else { ?>
<?php foreach($trucks as $truck) {
$truckdata = explode(\',\', $truck );
$name = $truckdata[0];
$location = $truckdata[1];
echo $name . \' is located at\' . $location .\'<br />\'; ?>
<?php } ?>
这段代码将允许我调用每个自定义字段,将值分解为其名称和位置,再分解为一个单独的值,并在下面回显它们。
接下来我要做的是将每个值映射到谷歌地图中。以下是我正在使用的代码:
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() { initialize(); });
function initialize() {
var map_options = {
center: new google.maps.LatLng(33.84659,-84.35686),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var google_map = new google.maps.Map(document.getElementById("map_canvas"), map_options);
var info_window = new google.maps.InfoWindow({
content: \'loading\'
});
var t = [];
var x = [];
var y = [];
var h = [];
t.push(\'Location Name 1\');
x.push(33.84659);
y.push(-84.35686);
h.push(\'<p><strong>Location Name 1</strong><br/>Address 1</p>\');
t.push(\'Location Name 2\');
x.push(33.846253);
y.push(-84.362125);
h.push(\'<p><strong>Location Name 2</strong><br/>Address 2</p>\');
var i = 0;
for ( item in t ) {
var m = new google.maps.Marker({
map: google_map,
animation: google.maps.Animation.DROP,
title: t[i],
position: new google.maps.LatLng(x[i],y[i]),
html: h[i]
});
google.maps.event.addListener(m, \'click\', function() {
info_window.setContent(this.html);
info_window.open(google_map, this);
});
i++;
}
}
</script>
<div id="map_canvas" style="width:400px;height:400px;">Google Map</div>
这是一个示例,但所讨论的代码是t、x、y和h变量。我知道我应该能够获取地址,将其弹出到地理编码器中,并输出标记的位置。我的问题是:
1) 如何循环遍历自定义字段以获取javascript中的地址?有没有办法用WP\\u查询获取数组(因为它只从一篇文章中获取)并在javascript文件中使用这些变量?
2) 如何对地址进行地理编码,并将其置于lat和lon位置,以便为标记获取正确的坐标
3) 一旦我对地址进行了地理编码,如何放置地图标记来回应下面的情绪?