やあみんな!getLatLng() を使用して郵便番号のリストをジオコーディングし、生成されたポイントをデータベースに保存して、後でマップに配置しようとしています。これは私がこれまでに得たものです:
$(".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?");
});
}
しかしthis.lat is not a function
、ポイントオブジェクトをシリアル化しようとしたり、それを使用しようとすると、エラーコンソールが表示されます$.post()
私の調査から、それgeocoder.getLatLng()
は非同期であることを理解しています。それは私がやろうとしていることにどのように影響しますか? このコードをループで実行しているのではなく、匿名のコールバック関数を使用してポイントを投稿しようとしています。
point
からの情報を保存して後で使用するにはどうすればよいですか?
アップデート
マーカーを作成して投稿しようとしても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?");
});
}
});
});
** 別のアップデート **
緯度/経度の値をデータベースに保存し、マップに配置する準備ができたときにマーカーを再作成したとしても、ジオコーディングされた住所を後で保存する必要があります。繰り返しますが、シリアル化または投稿-Googleマップ機能以外の方法でポイントを使用しているように見えるthis.lat is not a function
と、エラーログに例外が発生します。
私はasp.net mvcを使用しています-これを簡単にするフレームワークはありますか? これについて本当に助けが必要です。ありがとう。