Estoy intentando utilizar la API de ArcGIS Javascript para añadir a un mapa todas las órdenes de servicio que están abiertas. Puedo conseguir que esto funcione con una sola dirección, pero no está funcionando cuando trato de bucle a través de una lista que contiene direcciones. No estoy muy familiarizado con el uso de javascript, pero no veo nada malo en el código actual.
Ya he mirado "Geocodificación de múltiples direcciones utilizando la API de ArcGIS JS", pero no me ha funcionado.
ESRIMapView (cshtml)- Contiene el código para mapear todas las órdenes de servicio:
window.onload = function locateAll() {
map.graphics.clear();
var addresses = Viewbag.Addresses;
var addressCount = Viewbag.Addresses.length;
for (i = 0; i < addressCount; i++)
{
locator.outSpatialReference = map.spatialReference;
var options = {
address: addresses[i],
outFields: ["Loc_name"]
}
locator.addressToLocations(options);
}
}
HomeController.cs:
public ActionResult ESRIMapView(string address)
{
ViewBag.Message = "Your contact page.";
MFSRepository _repository = new MFSRepository();
List<ServiceOrder> orders = new List<ServiceOrder>();
orders = _repository.GetServiceOrderAddresses();
List<string> addresses = new List<string>();
foreach (ServiceOrder order in orders)
{
addresses.Add(order.StreetNumber + " " + order.StreetName + " " + order.City + " " + order.State + " " + order.Zip);
}
ViewBag.Addresses = addresses;
ViewBag.Address = address;
return View();
}
Cuando paso por el código en el controlador, todo se está configurando correctamente. También sé que está recibiendo la lista de direcciones del controlador porque pude poner la primera de la lista en un cuadro de texto a través de ese ESRIMapView. Nada se está trazando en el mapa, y no estoy recibiendo ningún error. Mi conjetura es que mi sintaxis para el bucle es probablemente incorrecto.