当前位置: 首页 > 知识库问答 >
问题:

使用javascript createElement的google地图加载问题

武嘉祥
2023-03-14

我正在开发一个小部件,以显示一些数据从我的网站给别人。为此,我必须通过javascript createElement方法动态加载一些脚本文件。这是我的代码。

<script language="javascript" type="text/javascript">
var script = document.createElement('script');
script.onload = function() {
//initMap();
};
script.src = "http://maps.google.com/maps/api/js?sensor=false";
document.getElementsByTagName('head')[0].appendChild(script);
function initMap()
{
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
 zoom: 12,
 center: myLatlng,
 mapTypeId: google.maps.MapTypeId.ROADMAP

}; var map=new google.maps.map(document.getElementById(“map_canvas”),mapOptions);

var marker = new google.maps.Marker({
  position: myLatlng,
  map: map,
  title:"Hello World!"
});
}
$(document).ready(function(){
initMap();
});
</script>

这段代码在script.onload函数和document.ready函数中都没有初始化映射。提前谢谢。

共有1个答案

邹麻雀
2023-03-14

我不知道为什么,但动态加载时,谷歌地图api似乎没有完全加载。相反,你可以使用谷歌加载器https://developers.google.com/loader/ 这很好。

这是你修改的

var script = document.createElement('script');
script.src = "https://raw.github.com/getify/LABjs/master/LAB.min.js";
script.onload = function() {
    $LAB
        .script('http://code.jquery.com/jquery-1.8.0.min.js')
        // .script('...') // other scripts which DO NOT depend on maps API

        // if script X depends on jquery for example, it must be loaded like this:
        // .wait() // this makes sure scripts above (jquery) are loaded before continuing
        // .script('X')
        .script('https://www.google.com/jsapi')
        .wait(function() {
            // this is called after everything above is loaded
            google.load("maps", "3", 
                {
                    "callback" : onMapsLoad, // called when maps api loaded
                    "other_params": "sensor=false"
                });
        });
};
document.getElementsByTagName('head')[0].appendChild(script);

function onMapsLoad() {
    $LAB
        // add here scripts which DEPEND on Maps API
        .script('https://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js')
        .wait(
            function() {
                // called when all above is loaded
                $(function() { // makes sure DOM is ready
                    initMap();
                });
            }
        );
}

function initMap()
{
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
 zoom: 12,
 center: myLatlng,
 mapTypeId: google.maps.MapTypeId.ROADMAP
}; var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

var marker = new google.maps.Marker({
  position: myLatlng,
  map: map,
  title:"Hello World!"
});
}

 类似资料:
  • 问题内容: 我正在使用Google Maps的可感知位置的Android应用程序。前几天,我已通过ADT升级到23.0.0.1245622。我想我之前是v22.6.2-1085508。 现在,地图视图仅包含Google徽标和+/-按钮。而且,奇怪的是,我的logcat包含以下行: 顺便说一下,我已经尝试清理该项目。没有骰子。我尝试在AVD而不是Galaxy S3上运行它。没有骰子。我尝试使用git

  • 问题内容: 我有一个简单的Chrome扩展程序,该扩展程序使用内容脚本功能来修改网站。更具体地说,所述网站。 由于某些原因,即使扩展中打包了本地图像,我似乎也无法使用它。 就是这样,最简单的CSS …但是它不起作用。浏览器不会加载图像。 问题答案: 您的图片网址应类似于 您最好通过JavaScript替换CSS。

  • 问题内容: 此错误已永久存在。(我确保已启用“ Google Maps Android API v2”。) 这是MainActivity.java: 表现: activity_main.xml: 请帮忙!我不确定出了什么问题…尽管我最终还是跟随/合并了各种教程,因为它们都不是自己工作的。 问题答案: 1. 我看到的第一个问题是在这里: 删除以下行:class =“ com.google.andro

  • 问题内容: 我尝试遍历一个映射,将其作为指向函数的指针传递,但是我找不到访问元素的方法。这是代码: 此示例中的第4行返回以下编译错误: 我尝试了方括号,但没有效果。如果我带走所有引用运算符(*&),则可以正常编译。 我该怎么写? 问题答案: 您不需要在地图上使用指针。 映射类型是引用类型,例如指针或切片 如果需要更改,可以使用一个指针:

  • 我试图在我的设备上运行这个非常简单的应用程序(使用maps API V2),出于某种原因,当我试图使用MapView时: 使用java文件: 瓷砖装不上!!但是当我使用fragment:fragment Android:id=“@+id/map”Android:name=“com.google.android.gms.maps.supportMapFragment”Android:layout_w