构建简单的Google地图插件时遇到的问题

时间:2011-09-14 作者:Laxmidi

我正在学习如何构建谷歌地图插件。(我知道有一些插件可以添加谷歌地图,但我希望能够根据我的需要调整代码。学习起来很有趣)。

不幸的是,插入短代码后,我没有得到映射。这是插件的主要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);

});
我没有出错。它没有任何作用。有没有关于我做错了什么的建议?我想得到一个基本的地图工作,然后我应该能够添加更多的功能以后。非常感谢。

-拉克西米迪

2 个回复
最合适的回答,由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上,百分之百无法在父容器上找到定义的高度。。。

SO网友:patnz

一切看起来都很好。当您查看页面的源代码时,这两个脚本是否都显示出来并具有正确的src引用?您是否在firebug或其他开发工具中发现任何JS错误?

不确定您作为“google maps”排队的脚本是否需要先注册(wp\\u register\\u script())才能作为lax\\u google\\u map\\u脚本的依赖项列出。您可以尝试让这两个脚本以相同的功能排队,因为它们都在init hook上运行。

另外,我相信您已经检查过了,但是您的主题是否在标题中有wp\\u head()?

结束

相关推荐

Switching Code plugins

我目前正在使用“Wordpress代码片段”为插入到帖子中的代码添加功能。这个插件的工作方式是将代码添加到设置中的插件库中,然后执行类似于[代码:1]的操作(我记不清确切的语法了)我真的不太喜欢它的风格,所以我希望使用谷歌的美化。停用此插件会有什么影响?我会丢失所有的代码片段吗?我是否需要浏览每一篇文章并编辑所有的代码片段(即[代码:1])?