Я курю работаю с картами google, и у меня есть метод, который создает маркеры на картах google. Метод дает информацию для маркеров. одна часть этой информации - это долгота и ширина для маркера. Долгожданность и ретушируются от zip-кода через функцию в javascript. однако, когда я возвращаю долготу и Латтильность, он говорит, что ничего не содержит.Возвращаемая строка с javascript на C#
Он получает несколько кодов почтового индекса и должен возвращать несколько longtitudes и
широтМой код:
Это добавляет маркеры.
void AddMarkerTimer(object sender, EventArgs e)
{
try
{
this.Document.InvokeScript("addMarker", new string[] { this.Document.InvokeScript("getLatFromPost", new string[] { delictMarkers[MarkerIndex].PostalCode }) + "", this.Document.InvokeScript("getLonFromPost", new string[] { delictMarkers[MarkerIndex].PostalCode }) + "", "marker" + MarkerIndex, MarkerIndex + "" });
MarkerIndex++;
}
catch(ArgumentOutOfRangeException ax){
MessageBox.Show(ax.ToString());
}
if (MarkerIndex == delictMarkers.Count - 1)
{
MarkerTimer.Stop();
}
}
Это должно вернуть долготу и длину (javascript).
function getLatFromPost(post) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ address: post },
function (results_array, status) {
var s;
s = results_array[0].geometry.location.lat();
//alert(s);
// Check status and do whatever you want with what you get back
// in the results_array variable if it is OK.
return s;
});
}
function getLonFromPost(post) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ address: post },
function (results_array, status) {
var s;
s = results_array[0].geometry.location.lng();
alert(s);
// Check status and do whatever you want with what you get back
// in the results_array variable if it is OK.
return s;
});
}
И эта часть добавляет его на карту (javascript).
function addMarker(x, y, titleMarker, index) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(x, y),
map: map,
title: titleMarker,
icon: delict,
index: index
});
google.maps.event.addListener(marker, "click", function (event) {
showMarkerContextMenu(event.latLng, index, titleMarker);
});
marker.set("index", index);
markerList[index] = marker;
//marker.setMap(map);
}
Надеюсь, что это моя проблема. Заранее благодарю за внимание.
Кажется, что-то работает асинхронно, поэтому вы можете посмотреть это сообщение http://stackoverflow.com/questions/2993563/how-do-return-a-variable-from-google-maps-javascript-geocoder- callback – AOZ
Я рассмотрю его :) – Arnout