Php GoogleMap和Wordpress:动态创建标记的问题
我想在Wordpress的谷歌地图上创建日常标记。标记是根据post标记(所有位置)计算的。我在计算坐标和创建php数组方面没有问题。当我必须在地图上绘制存储在数组中的动态生成的数据时,问题就出现了,因为没有显示指针 我在WP header.php中指定了以下说明:Php GoogleMap和Wordpress:动态创建标记的问题,php,javascript,wordpress,dynamically-generated,Php,Javascript,Wordpress,Dynamically Generated,我想在Wordpress的谷歌地图上创建日常标记。标记是根据post标记(所有位置)计算的。我在计算坐标和创建php数组方面没有问题。当我必须在地图上绘制存储在数组中的动态生成的数据时,问题就出现了,因为没有显示指针 我在WP header.php中指定了以下说明: <script src="http://maps.google.com/maps?file=api&v=2&key=mykey" type="text/javascript"><
<script src="http://maps.google.com/maps?file=api&v=2&key=mykey" type="text/javascript"></script>
<script src="<?php bloginfo('template_directory'); ?>/mapLocations_cache.php" type="text/javascript"></script>
<script src="<?php bloginfo('template_directory'); ?>/map_functions.js" type="text/javascript"></script>
map_functions.js包含以下代码:
var centerLatitude = 62.3908358;
var centerLongitude = 17.3069157;
var startZoom = 4;
var map;
function addMarker(latitude, longitude, description) {
var marker = new GMarker(new GLatLng(latitude, longitude));
GEvent.addListener(marker, 'click',
function() {
marker.openInfoWindowHtml(description);
}
);
map.addOverlay(marker);
}
function init() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
for(id in markers) {
addMarker(markers[id].latitude, markers[id].longitude, markers[id].title);
}
}
}
window.onload = init;
window.onunload = GUnload;
因为当我使用一个不是动态生成的文件/数组时,这段代码工作得很好,所以我怀疑当我试图从WordPress帖子和标记中动态获取数据时,标题中包含的JavaScript没有完成
任何建议都有助于:-(
干杯
码头
您丢失了一个结束撇号。我不确定这是否是问题所在,但您可以检查它并确保它不是问题所在
除此之外,我不太确定,您也可以查看此链接:以下是一些建议:
markers
数组中的最后一个元素后面没有“,”(就像现在代码中一样)函数addMarker(lat,lng,…)
中获得正确的数字。您还可以通过以下方式强制转换数字:var marker=new GMarker(new GLatLng(lat-0,lng-0));
使用谷歌地理编码API传递位置本身,而不是用另一个脚本编码long和lat。谷歌API很好地处理城市名称、国家名称和邮政编码,即使格式不完美,也相当可靠。Eureka!我找到了解决错误的方法。没有指定负责标题中的指针和谷歌地图,我将其移动到index.php的底部。这意味着只有当我的地理编码器完成其工作并且指针列表/数组完成时,地图数据才会被处理 PhP和Javascript之间的交互对我来说并不完全清楚:-)
玛丽娜嗨,谢谢你的指点。撇号在那里(我的意思是在实际代码中)。我将试着看一看您向我建议的文档。干杯,谢谢。我会试试你的建议!西蒙,我试试看。方法
var centerLatitude = 62.3908358;
var centerLongitude = 17.3069157;
var startZoom = 4;
var map;
function addMarker(latitude, longitude, description) {
var marker = new GMarker(new GLatLng(latitude, longitude));
GEvent.addListener(marker, 'click',
function() {
marker.openInfoWindowHtml(description);
}
);
map.addOverlay(marker);
}
function init() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
for(id in markers) {
addMarker(markers[id].latitude, markers[id].longitude, markers[id].title);
}
}
}
window.onload = init;
window.onunload = GUnload;
var markers = [
{
'latitude': 62.3908358,
'longitude': 17.3069157,
'title': 'it happens in Sundsvall',
'news': 'che noia5'
},
];