0

get スクリプトを使用して Google マップ API を呼び出し、続いて getscript を使用して bmap スクリプトを呼び出し、bmap 関数を同じスクリプトに追加しようとしています。これは、GoogleマップAPIとbmapscを呼び出そうとした方法です

$.getScript("http://maps.google.co.uk/maps?    
file=api&v=2&async=2&callback=placeMap&key=my_API_key");
$.getScript("http://www.klossal.com/js/bmap/jQuery.bMap.1.3.js");
$("#map").bMap({
    mapZoom: 11,
    mapCenter:[51.501690392607,-0.1263427734375],
    mapSidebar:"sideBar", //id of the div to use as the sidebar
    markers:{"data":[
        {

"lat":51.49757618329838,"lng":-0.1746654510498047,"title":"Science  
Museum","body":"Exhibition Road, London SW7"
        },{

 "lat":51.47769451182406,"lng":-0.0009441375732421875,"title":"Royal Observatory 
Greenwich","body":"Blackheath Ave, Greenwich, London SE10"
        },{

"lat":51.49624032118747,"lng":-0.10857582092285156,"title":"Imperial War 
Museum","body":"Lambeth, London, SE1"
        },{

"lat":51.51792987720294,"lng":-0.1272869110107422,"title":"British Museum"                  
        },{

"lat":51.495625811469374,"lng":-0.17642498016357422,"title":"Natural History 
Museum","body":"Cromwell Road, London, SW7"                 
        },{

"lat":51.50177053585362,"lng":-0.12908935546875,"title":"Churchill Museum"                  
        }
    ]}
});
});

これが機能しない理由がわかりません。これに関するヘルプは素晴らしいでしょう。

4

1 に答える 1

0

getScript で使用している Google Maps API へのリンクが間違っていると思います。すべきではないか

http://maps.google.co.uk/maps/api/js?sensor=false

それ以外の

$.getScript("http://maps.google.co.uk/maps?file=api&v=2&async=2&callback=placeMap&key=my_API_key");

マップの使用状況を監視したい場合にのみ、それを機能させるために get は必要ありません:

Google マップ JavaScript API v3

Google Maps JavaScript API v3 が正しく機能するために API キーは必要ありません。ただし、アプリケーションの Maps API の使用状況を監視できる API コンソール キーを使用して Maps API をロードすることを強くお勧めします。API コンソール キーの使用方法を学びます。

これを行う方法は次のとおりです。

醜いコードに警告します。要求に答えるために、Require.js などを使用して、本番環境でこのような読み込みを行ってください。

$(document).ready(function(){
        $.getScript("http://maps.google.co.uk/maps/api/js?sensor=false",
            $.getScript("http://www.klossal.com/js/bmap/jQuery.bMap.1.3.js",
                function(){
                    $("#map").bMap({
                        mapZoom: 11,
                        mapCenter:[51.501690392607,-0.1263427734375],
                        mapSidebar:"sideBar", //id of the div to use as the sidebar
                        markers:{"data":[
                            {
                                "lat":51.49757618329838,"lng":-0.1746654510498047,"title":"Science Museum","body":"Exhibition Road, London SW7"
                            },{
                                "lat":51.47769451182406,"lng":-0.0009441375732421875,"title":"Royal Observatory Greenwich","body":"Blackheath Ave, Greenwich, London SE10"
                            },{
                                "lat":51.49624032118747,"lng":-0.10857582092285156,"title":"Imperial War Museum","body":"Lambeth, London, SE1"
                            },{
                                "lat":51.51792987720294,"lng":-0.1272869110107422,"title":"British Museum"                  
                            },{
                                "lat":51.495625811469374,"lng":-0.17642498016357422,"title":"Natural History Museum","body":"Cromwell Road, London, SW7"                    
                            },{
                                "lat":51.50177053585362,"lng":-0.12908935546875,"title":"Churchill Museum"                  
                            }
                        ]}
                    });
                }));
    });

このコールバックにはコードが含まれている必要があるため、bMap と googleMaps の両方が読み込まれた後に実行されます。これは、ajax が非同期であるため、Google にスクリプトを要求してからアプリケーションを続行するためです。

于 2012-10-16T17:23:56.197 に答える