Я хочу отобразить файл KML в картах Google из моего приложения asp.net MVC 3.
В API Карт Google JavaScript V3 я использую KmlLayer ('url') для визуализации kml вКарты Гугл.Я прочитал, что файл kml должен находиться на общедоступном сервере.Я мог бы визуализировать файл kml локально с использованием сторонних javascripts, но они могут быть подвержены ошибкам( Загрузка локального файла .kml с помощью карт Google? )
Файлы kml, которые я хочу отобразить, хранятся в базе данных сервера SQL в виде байтовых массивов.Поэтому для одного файла Kml я должен записать массив байтов в путь с расширением kml.Я сделал это с File.WriteAllBytes (путь, байт), где путь = локальный путь и байт = байтовый массив из базы данных.Это делается в приложении Controller of MVC.Это код:
public ActionResult MapView(int id)
{
Incident inc = db.Incidents.Find(id);
if (inc.IncidentDatas.Count != 0)
{
ViewBag.ListKmlUrls = kmlFileStore(inc);
}
return View(inc);
}
public List<string> kmlFileStore(Incident inc)
{
List<string> listKmlUrls = new List<string>();
// Specify a "currently active folder"
string activeDir = @"c:\incident" + inc.incId + @"\incidentData";
//Create a new subfolder under the current active folder
string newPath = System.IO.Path.Combine(activeDir, "kmlFiles");
// Create the subfolder
System.IO.Directory.CreateDirectory(newPath);
String url;
foreach(var d in inc.IncidentDatas) {
url = @"c:\incident" + inc.incId + @"\incidentData\kmlFiles\" + d.id + ".kml";
//dataContent is byte[]
System.IO.File.WriteAllBytes(url, d.dataContent);
listKmlUrls.Add(url);
}
return listKmlUrls;
}
Идея заключается в том, что представление будет обращаться к списку URL-адресов через viewbag для передачи URL-адресов методу javascript KmlLayer (...).Но здесь URL-адреса являются только локальными путями.
Итак, как приложение MVC может сохранить файл kml на общедоступном сервере, чтобы оно могло передать URL-адрес в KmlLayer (...)?Это должно быть сделано программно.
В настоящее время я обращаюсь к своему приложению MVC и базе данных с localhost.У меня есть статический Ip и имя.Я также хотел бы опубликовать приложение и базу данных для онлайн-доступа.Не знаете, как поступить, пожалуйста, дайте мне несколько советов.Спасибо.