-1

Я пытаюсь получить круг на карте в соответствии с местом, которое я вводил в текстовое поле. Я получаю это место, но не круг. Я отлаживал его, и он всегда идет в другую часть, которая должна показывать диалоговое окно с ошибкой. Но я также не получаю диалоговое окно. Я проверил в консоли, и я получаю сообщение об ошибке, как:InvalidValueError: setCenter: не LatLng или LatLngLiteral: не объект

InvalidValueError: setCenter: not a LatLng or LatLngLiteral: not an Object

КОД:

<!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> 

Я попытался установить центр, используя средства, но ни один из них не работает. Любая помощь будет оценена по достоинству. Заранее спасибо

+0

Что значение '[0] .geometry.location', потому что [оно либо должно быть экземпляром класса latlang или объект с Lat/lng ключ/значение] (https://developers.google.com/maps/documentation/javascript/reference?hl=ru). – Andy

ответ

3

Вы настраиваете центр вашего круга как

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

но .setCenter метод mapObject не возвращает LatLng объект, так center: не определен.

Используйте расположение непосредственно:

center: results[0].geometry.location 
+0

Спасибо. Оно работало завораживающе – Itaws

Смежные вопросы