gpt4 book ai didi

javascript - 我如何使用 Google Maps geocoder.getLatLng() 并将其结果存储在数据库中?

转载 作者:可可西里 更新时间:2023-11-01 02:22:59 24 4
gpt4 key购买 nike

大家好!我正在尝试使用 getLatLng() 对邮政/邮政编码列表进行地理编码,并将生成的点存储在数据库中,以便稍后放置在 map 上。这是我到目前为止所得到的:

 $(".geocodethis").click(function () {
var geocoder = new GClientGeocoder();
var postalCode = $(this).siblings(".postal").val();
var id = $(this).siblings(".id").val();

geocoder.getLatLng(postalCode, function (point) {
if (!point) {
alert(postalCode + " not found");
} else {
alert(point);
var serializedPoint = $.param(point);
//Geocode(id, point);
}
});

});

function Geocode(id, point) {
alert(point);
$.post("/Demographic/Geocode/" + id, point, function () {
alert("success?");
});
}

但是当我尝试序列化点对象或在 $.post() 中使用它时,我在错误控制台中收到 this.lat is not a function

根据我的研究,我了解到 geocoder.getLatLng() 是异步的,这将如何影响我尝试做的事情?我没有在循环中运行此代码,而是尝试使用匿名回调函数发布要点。

如何保存的信息以备后用?

更新

创建标记并尝试发布它仍然会导致错误控制台中出现 this.lat is not a function

$(".geocodethis").click(function () {
var geocoder = new GClientGeocoder();
var postalCode = $(this).siblings(".postal").val();
var id = $(this).siblings(".id").val();

geocoder.getLatLng(postalCode, function (point) {
if (!point) {
alert(postalCode + " not found");
} else {
alert(point);
var marker = new GMarker(point);

$.post("/Demographic/Geocode/" + id, marker, function () {
alert("success?");
});
}
});

});

** 另一个更新 **

我确实需要保存经过地理编码的地址以备后用,即使我将纬度/经度值存储在我的数据库中并在我准备好将其放到 map 上时重新制作标记。同样,序列化或发布 - 似乎以谷歌地图函数以外的任何方式使用该点都会在我的错误日志中给出 this.lat is not a function 异常。

我正在使用 asp.net mvc - 是否有任何框架可以使这更容易?我真的需要帮助。谢谢。

最佳答案

如果你卡住了 2 天,也许重新开始 v3 会是一件好事,这个片段对我来说是一个类似的工作......

          function GetLocation(address) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
ParseLocation(results[0].geometry.location);

}
else
alert('error: ' + status);

});
}

}

function ParseLocation(location) {

var lat = location.lat().toString().substr(0, 12);
var lng = location.lng().toString().substr(0, 12);

//use $.get to save the lat lng in the database
$.get('MatchLatLang.ashx?action=setlatlong&lat=' + lat + '&lng=' + lng,
function (data) {
// fill textboss (feedback purposes only)
//with the found and saved lat lng values
$('#tbxlat').val(lat);
$('#tbxlng').val(lng);
$('#spnstatus').text(data);


});
}

关于javascript - 我如何使用 Google Maps geocoder.getLatLng() 并将其结果存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com