【问题标题】:MVC4 asp.net accessing kml file in viewMVC4 asp.net 在视图中访问 kml 文件
【发布时间】:2012-12-20 10:31:48
【问题描述】:

我在 Visual Studio 2012 中的 MVC4 项目中遇到问题。 我在 symfony2 中建立了一个后台,在那里我可以显示带有从 kml 文件加载的多边形的谷歌地图。

现在我正在尝试在 asp.net (C#) 中做同样的事情...但我的代码似乎无法访问 kml 文件。

我没有使用模型视图控制器系统来访问我的文件,也许这就是问题所在......

我在我的项目中创建了一个名为“Kmls”的目录,并将我的 kml 粘贴到那里(1.kml、2.kml、...) 这是我的观点代码:

@model IEnumerable<SocialGeo.Models.district>
@{
   ViewBag.Title = "Index";
}

<h3>Choose a district first</h3>

<ul class="allDistricts" data-kml="">
    @foreach (var item in Model) {
        @Html.ActionLink(item.district_name, "DistrictNews", new { id=item.district_id})
    }
</ul>

<script type="text/javascript">
  $(document).ready(function () {
    var myOptions = {
        center: new google.maps.LatLng(51.087633, 3.711569),
        zoom: 11,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }



    var paths =
    {
        imagePath: "@Url.Content("~/Kmls/10.kml")"
    }


    $("section").append('<div class="mapscanvas" id="map_canvas' + 0 + '"></div>');

    map = new google.maps.Map(document.getElementById("map_canvas" + 0), myOptions);

    geoXml = geoXML3.parser({ map: map, singleInfoWindow: true, zoom: false });
    //var jej = @HttpContext.Current.Server.MapPath("~/Kmls/10.kml")

    geoXml.parse(paths.imagePath);

});
</script>

当我在 Firefox 中运行应用程序(调试)时,我在控制台中收到以下错误:

GET: http://localhost:53760/Kmls/10.kml 404NotFound
HTTP error 404 retrieving /Kmls/10.kml in polys.js (line 990)
Unable to retrieve /Kmls/10.kml

我看到了地图,但没有看到我需要的多边形。

我是否也必须为此使用控制器? 这是我正在调用的控制器操作:

public ActionResult Index()
{
    var districts = db.districts.Include(d => d.city);
    return View(districts.ToList()); 
}

任何帮助将不胜感激!

【问题讨论】:

  • 不确定你在说什么,我在本地运行一切。我应该在我的项目中哪里指定这个?
  • 我没有使用 标签,所以我不明白为什么要配置服务器?

标签: google-maps-api-3 asp.net-mvc-4 visual-studio-2012 kml


【解决方案1】:

我认为您的问题可能是为了在 Google 地图中加载 KML 文件(至少对于免费版本),它需要是 Web 可访问的(即您提供的 URL 需要可从网络访问,而不是只是在您的开发/生产服务器上本地)。因此,“/Kmls/10.kml”不是有效的 URL,需要类似“http://myserver/KML”的内容。

正如下面的 cmets 中所提供的,这里是一个类似已回答问题的链接:Google Maps API and KML File LocalHost Development Options

【讨论】:

  • 我可以在我的代码中重现这一点,还是在我的项目在线部署时必须等待测试它?请记住,我能够在另一个本地项目中看到 kml(但那是在 mac invironment 和 php 中)......对此的任何想法都会很棒或者一种测试我的问题确实是你的问题的方法说我有:) 非常感谢您对此进行调查。
  • 刚刚翻阅了我在 9 月 / 10 月尝试做同样的事情时读到的答案,在这里找到它:stackoverflow.com/questions/6092110/…
  • 将链接放入您的初始答案中,我接受...感谢您清除此问题!
猜你喜欢
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
相关资源
最近更新 更多