如何从autocomplete.getPlace()获取google place api结果

use*_*050 5 javascript asp.net-mvc google-maps google-maps-api-3 google-places-api

我想将google中的经度/纬度结果传递给我的MVC应用程序操作路径值.我不知道如何获取我的路线值或如何将javascript返回到html值.马上

var result = autocomplete.getPlace();
Run Code Online (Sandbox Code Playgroud)

返回一个未定义的值.因此即使地方的自动完成工作正常,它甚至看起来都不像它的工作.

var input = document.getElementById('location');
var options = {
types: ['(cities)'],
componentRestrictions: { country: "us" }
};
var autocomplete = new google.maps.places.Autocomplete(input, options);
var t = 2;
var result = autocomplete.getPlace(); //result is undefined
var i = 1;
//var lat = result.geometry.location.lat;
//var lon = result.geometry.location.lon;
Run Code Online (Sandbox Code Playgroud)

这是我的表单,其中包含找到位置的输入框和脚本标记.我正在尝试将lon/lat值设为路径值5,6

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js? v=3.exp&amp;sensor=false&amp;libraries=places"></script>

@{
    var routeValues = new RouteValueDictionary();
    routeValues.Add("Longitude", "5");
    routeValues.Add("Latitude", "6");
}

@using (Html.BeginForm("Results", "Home", routeValues, FormMethod.Post))
{
    <p>
        <input type="text" name="location" id="location" placeholder="Search For A Studio" />
    </p>
    <p>
        <input class="btn btn-primary btn-lg" value='Submit' type="submit"/>
    </p>
}
Run Code Online (Sandbox Code Playgroud)

这是我在控制器中的动作

public ActionResult Results(string longitude, string latitude)
    {
        var repo = new YogaSpaceRepository();

            /// 1000 Ocean Ave
            DbGeography myLocation = DbGeography.FromText("POINT(-122.453164 37.723057)");
            IQueryable<YogaSpace> spaces = repo.AllWithinDistance(myLocation);


        return View(spaces);
    }
Run Code Online (Sandbox Code Playgroud)

*更新 - 我可以获得autocomplete.getPlace()来返回数据.我必须将它放在我的提交按钮的onclick事件的javascript函数中.希望这是最好的方法!但我似乎无法从中获取位置(经度/纬度)数据.这是我所拥有的,但是lat/lon似乎没有我正在寻找的东西,或者我不知道如何从这两个变量中拉出坐标.

var input = document.getElementById('location');
var options = {
   types: ['(cities)'],
   componentRestrictions: { country: "us" }
};
var autocomplete = new google.maps.places.Autocomplete(input, options);

function getGeometry() {
   var place = autocomplete.getPlace();

   var lat = place.geometry.location.lat;
   var lon = place.geometry.location.lon;
}
Run Code Online (Sandbox Code Playgroud)

Ham*_*riq 5

您可以通过geometry.location对象获取lat和lang

place.geometry.location.lat()
place.geometry.location.lng()
Run Code Online (Sandbox Code Playgroud)