1

我正在尝试使用 asp.net 将 Google 地图添加到我的网页。使用谷歌地图下方给出的代码显示几毫秒然后消失。我检查了控制台中的元素并显示以下消息 - “未捕获的类型错误:无法读取 null 的属性'样式'”。请指导我找到解决此问题的方法。

<script  type="text/javascript">
            var directionsDisplay;
            var directionsService = new google.maps.DirectionsService();

            function initialize() {
                directionsDisplay = new google.maps.DirectionsRenderer();
                var mapOptions = {
                    zoom: 7,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    center: new google.maps.LatLng(41.850033, -87.6500523)
                };
                var map = new google.maps.Map(document.getElementById('map-canvas'),
          mapOptions);
                directionsDisplay.setMap(map);
                directionsDisplay.setPanel(document.getElementById('directions-panel'));

                var control = document.getElementById('control');
                control.style.display = 'block';

    Uncaught TypeError: Cannot read property 'style' of null




                map.controls[google.maps.ControlPosition.TOP_CENTER].push(control);
            }

            function calcRoute() {
                var start = document.getElementById('start').value;
                var end = document.getElementById('end').value;
                var request = {
                    origin: start,
                    destination: end,
                    travelMode: google.maps.TravelMode.DRIVING
                };
                directionsService.route(request, function (response, status) {
                    if (status == google.maps.DirectionsStatus.OK) {
                        directionsDisplay.setDirections(response);
                    }
                });
            }

            google.maps.event.addDomListener(window, 'load', initialize);

        </script>
4

2 回答 2

0

control缺少具有 id 的元素。行后:

var control = document.getElementById('control');

变量control获得了价值null,因此下一行

control.style.display = 'block';

产生错误:

Uncaught TypeError: Cannot read property 'style' of null

要解决此问题,您必须使用 id 向页面添加新元素control,例如:

<div id="control"></div>

如果您想将自定义控件添加到 Google 地图,请查看文档控件

于 2014-01-17T17:58:19.440 回答
0

如果页面中不存在控件元素,则返回函数if (control===null) return;

于 2013-04-20T12:06:19.713 回答