Google地图标记无法加载

时间:2012-02-21 14:26:37

标签: javascript google-maps google-maps-api-3

我是这个网站的新用户,谷歌地图和javascript相当新,所以请耐心等待。

我的任务是将一些谷歌地图界面添加到我管理的网站,所以我按照谷歌教程,我得到了显示地图,地理编码地址字符串和设置标记。 下面是问题,第一个地理编码指针总是出现,但其余的只是间歇性出现(通常在第一次加载或几次重新加载后)。 Firebug报告以下错误:

  

“main.js第28行的属性值无效:(53.3800136,-1.475428500000021)”

我认为我发现了有问题的功能,脚本似乎在此时间歇性地停止,阻止其他标记加载。 我已经尝试了所有可以找到的相关解决方案而且现在没有工作我很难过任何人都可以帮忙吗?以下是我的代码供参考:

     function load_map() {
            var startLatLng = new google.maps.LatLng(52.485809,-1.888783);
            // create a new Google latLang marker object with co-ords for
            // start location

            // create a JASON object to store map configuration
            var config = {
                zoom: 5,
                center: startLatLng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };


            map = new google.maps.Map(document.getElementById("map"), config);
            // initialise the map passing the display divs id and the config
            // object

            var startMarker = new google.maps.Marker({
                position: startLatLng,
                map: map
            })

            // create a new marker object for start location
            startMarker.setMap(map);
            // Add the marker to the map

            geocodeAddress("ARM Ltd Rockingham Court 152 Rockingham Street Sheffield Great Britain");
            geocodeAddress("Centrum House 36 Station Road Egham Surrey");
            geocodeAddress("Pipers Way Swindon United Kingdom");
            // call the geocoding function to add markers to the map hard coded right now for testing 
           // but to be pulled from a DB in future
        }

        /*
         * This function loads a marker overlay on to the location provided
         * and calls the addInfoWindow function to add an info window to it
         *
         * @ param a google location object representing the location at which
         * the marker is to be placed
         * @ param a String variable representing the information to be attached
         * to the window.
         */

        function loadMarker(location,windowText) {
            var tempMarker = new google.maps.Marker({
                position: location,
                map: map
            });

            addInfoWindow(windowText,tempMarker);
            // add an information window anchored on the marker

            tempMarker.setMap(location); // seems to work ok up to this point.
            // add the marker to the map at this location

        }

        /*
         * A function to geocode the string type address passed into usable
         * lat lng type co-ords
         * @ param a String representing the address to be geocoded
         */

        function geocodeAddress (address) {
            var geocoder = new google.maps.Geocoder();
            geocoder.geocode( {'address': address}, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    loadMarker(results[0].geometry.location,"Info here");
                } else {
                    alert("Geocode was not successful for the following reason: " + status);
                }
            });
        }

        /*
         * This function adds an info window to each marker and allows it
         * to be activated on click.
         * @Param
         */

        function addInfoWindow (infoText,marker) {
            var contentString = infoText;
            var tempInfoWindow = new google.maps.InfoWindow({
                content: contentString
            });
            google.maps.event.addListener(marker, 'click', function() {
                tempInfoWindow.open(map,marker);
            });
        }
        // initialise all the page components by calling there load functions

        // called using a standard body onload to intilise the map
        function init () {
            load_map();
        }   

1 个答案:

答案 0 :(得分:0)

第53行错误地引用了location而不是map

更改您的代码:

tempMarker.setMap(location);

tempMarker.setMap(map);