【问题标题】:InvalidValueError: setCenter: not a LatLng or LatLngLiteral: not an ObjectInvalidValueError:setCenter:不是 LatLng 或 LatLngLiteral:不是对象
【发布时间】:2015-08-20 11:52:57
【问题描述】:

我正在尝试根据我在文本框中输入的位置在地图上绘制圆圈。我得到了这个地方,但不是圈子。我调试了它,它总是转到应该显示错误对话框的 else 部分。但我也没有得到对话框。我在控制台中检查,我得到的错误是:

InvalidValueError: setCenter: not a LatLng or LatLngLiteral: not an 对象

代码:

<!DOCTYPE  link href="https://maps/documentation/javascript/examples/default.css" rel="stylesheet" />
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Geolocation and Google Maps API</title>
    <script src="http://maps.google.com/maps/api/js?sensor=true" type="text/javascript"></script>
    <script>

        function writeAddressName()
        {
            var geocoder = new google.maps.Geocoder();
            var add = document.getElementById('address').value;
            var myOptions =
            {
                zoom: 9,
                center: add,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var mapObject = new google.maps.Map(document.getElementById("map"), myOptions);
            geocoder.geocode(
            {
                'address': add
            },

            function (results, status)
            {
                if (status == google.maps.GeocoderStatus.OK)
                {
                    var circle = new google.maps.Circle(
                    {
                        center: mapObject.setCenter(results[0].geometry.location),
                        radius: /*position.coords.accuracy*/16090 * 2,
                        map: mapObject,
                        fillColor: '#0000FF',
                        fillOpacity: 0.5,
                        strokeColor: '#0000FF',
                        strokeOpacity: 1.0
                    });
                    mapObject.fitBounds(circle.getBounds());

                    mapObject.setCenter(results[0].geometry.location);
                    var hint = new google.maps.Marker(
                    {
                        mapObject: mapObject,
                        position: results[0].geometry.location
                    });
                }    
                else
                {
                    alert('This code is not successful ' + status);
                }
            });
        }

        google.maps.event.addDomListener(window, 'load', writeAddressName);
    </script>
    <style type="text/css">
      #map 
      {
        height: 450px;
        border: 5px solid #5E5454;
      }
    </style>
  </head>
  <body>
    <h1>Basic example</h1>
      <div id="map"></div>
      <div id="panel">
                Enter your region:
                    <input id="address" type="textbox">
                <input type="button" value="Search" onclick="writeAddressName()">
            </div>
  </body>
</html>

我试图通过使用手段来设置中心,但都没有奏效。任何形式的帮助将不胜感激。提前致谢

【问题讨论】:

标签: javascript google-maps asp.net-mvc-4 model-view-controller


【解决方案1】:

您将圈子的中心设置为

center: mapObject.setCenter(results[0].geometry.location)

但是mapObject.setCenter 方法不返回LatLng 对象,所以center: 是未定义的。

直接使用位置:

center: results[0].geometry.location 

【讨论】:

    猜你喜欢
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多