我正在学习如何构建谷歌地图插件。(我知道有一些插件可以添加谷歌地图,但我希望能够根据我的需要调整代码。学习起来很有趣)。
不幸的是,插入短代码后,我没有得到映射。这是插件的主要php文件:
<?php
/*
Plugin Name: Lax Google Map Plugin
Plugin URI: http://www.mysite.com
Description: Make Map
Version: 1.0
Author URI: http://www.mysite.com
*/
function lax_google_map_init() {
wp_enqueue_script(\'google-maps\', \'http://maps.googleapis.com/maps/api/js?sensor=false\');
}
add_action(\'init\', \'lax_google_map_init\');
function lax_google_map_init_js() {
wp_enqueue_script(\'lax_google_map_script\', plugins_url(\'js/lax_google_map_script.js\', __FILE__), array(\'google-maps\'));
}
add_action(\'init\', \'lax_google_map_init_js\');
function lax_google_map_maker($atts,$content=null) {
$output = \'<div id="map_canvas" style="width:100%; height:100%"></div>\';
return $output;
}
add_shortcode(\'lax-google-map\', \'lax_google_map_maker\');
?>
在javascript文件中,我得到了:
jQuery.noConflict();
jQuery(document).ready(function($) {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
});
我没有出错。它没有任何作用。有没有关于我做错了什么的建议?我想得到一个基本的地图工作,然后我应该能够添加更多的功能以后。非常感谢。
-拉克西米迪
最合适的回答,由SO网友:patnz 整理而成
Wierd,只要重新阅读你的评论,如果地图画布div出现,那么当你这么早调用它时,你的短代码看起来就正常了。这是我测试的代码,还添加了jquery作为自定义脚本的依赖项&;在你的分区上更改了一些css。。。
function lax_google_map_init() {
wp_enqueue_script(\'google-maps\', \'http://maps.googleapis.com/maps/api/js?sensor=false\');
wp_enqueue_script(\'lax_google_map_script\', plugins_url(\'js/lax_google_map_script.js\', __FILE__), array(\'google-maps\',\'jquery\'));
add_shortcode(\'lax-google-map\', \'lax_google_map_maker\');
}
add_action(\'init\', \'lax_google_map_init\');
function lax_google_map_maker($atts,$content=null) {
$output .= \'<div id="map_canvas" style="width:100%; height:100px; border:1px solid black;"></div>\';
return $output;
}
现在来看,这可能是一个css的高度问题:在您的map div上,百分之百无法在父容器上找到定义的高度。。。