【发布时间】:2014-07-23 07:21:59
【问题描述】:
public List<double> GoogleGeoCode(string address)
{
address = "Stockholm";
string url = "http://maps.googleapis.com/maps/api/geocode/json?sensor=true&address=";
dynamic googleResults = new Uri(url + address).GetDynamicJsonObject();
var cordinates = new List<double>();
foreach (var result in googleResults.results)
{
cordinates.Add(result.geometry.location.lng);
cordinates.Add(result.geometry.location.lat);
}
return cordinates;
}
现在,我想要两个在我的 Ajax 中使用列表中的值:
$(function() {
$('#ajax').click(function() {
$.ajax({
url: '@Url.Action("GoogleGeoCode", "Home")',
context: document.body
})
.done(function(serverdata) {
data = serverdata;
$.each(data, function(i, item) {
var marker = new google.maps.Marker({
'position': new google.maps.LatLng(item[0], item.GeoLat[1]), <-- I thought Item would contain my list and I could use its index
'map': map,
'title': item.PlaceName,
'Catch': item.Catch
});
});
});
});
我是 Ajax 的初学者,如果有人有时间,我将非常感谢逐步解释它是如何工作的。谢谢!
更新: 新课程:
public class LongLatModel
{
public double Latitude { get; set; }
public double Longitude { get; set; }
}
控制器:
public LongLatModel GoogleGeoCode(string address)
{
address = "Stockholm";
string url = "http://maps.googleapis.com/maps/api/geocode/json?sensor=true&address=";
dynamic googleResults = new Uri(url + address).GetDynamicJsonObject();
var cordinates = new List<double>();
var longlat = new LongLatModel();
foreach (var result in googleResults.results)
{
longlat.Latitude = result.geometry.location.lng;
longlat.Longitude = result.geometry.location.lat;
}
return longlat;
}
阿贾克斯:
$(function() {
$('#ajax').click(function() {
$.ajax({
// in a real scenario, use data-attrs on the html
// rather than linking directly to the url
url: '@Url.Action("GoogleGeoCode", "Home")',
context: document.body
})
.done(function(serverdata) {
data = serverdata;
$.each(data, function(i, item) {
var marker = new google.maps.Marker({
'position': new google.maps.LatLng(data.longitude, data.latitude),
'map': map,
'title': item.PlaceName,
'Catch': item.Catch
});
});
});
});
编辑:
好的,所以我设法将正确的信息输入 AJAX(我认为..) 但是,我很难确定如何将这两个值放在它们应该在的位置。
我怎样才能循环并将它们放置在正确的位置?
$.each(数据, 函数 (i, item) {
var 标记 = 新的 google.maps.Marker({ '位置': 新的 google.maps.LatLng(LONG, LAT),
});
【问题讨论】:
标签: ajax asp.net-mvc