Google maps api 3 MVC4 asp.net访问视图中的kml文件

Google maps api 3 MVC4 asp.net访问视图中的kml文件,google-maps-api-3,asp.net-mvc-4,visual-studio-2012,kml,Google Maps Api 3,Asp.net Mvc 4,Visual Studio 2012,Kml,我在visual studio 2012中的MVC4项目中遇到问题。 我在symfony2中构建了一个后台办公室,在那里我可以显示从kml文件加载的多边形的谷歌地图 现在我正试图在asp.net(C#)中做同样的事情。。。但是我的代码似乎无法访问kml文件 我没有使用模型视图控制器系统来访问我的文件,也许这就是问题所在 我在我的项目中创建了一个名为“kml”的目录,并将我的kml粘贴到其中(1.kml,2.kml,…) 这是我的观点代码: @model IEnumerable<Social

我在visual studio 2012中的MVC4项目中遇到问题。 我在symfony2中构建了一个后台办公室,在那里我可以显示从kml文件加载的多边形的谷歌地图

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

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

我在我的项目中创建了一个名为“kml”的目录,并将我的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>
我看到的是地图,但不是我需要的多边形

我也需要使用控制器吗? 这是正在调用的我的controlleraction:

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

任何帮助都将不胜感激

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


正如下面的评论所提供的,这里有一个链接指向一个类似的已回答问题:

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


正如下面的评论中所提供的,这里有一个链接,指向一个类似的已回答问题:

不确定您在说什么,我运行的所有内容仍然是本地的。我应该在我的项目中在哪里指定它?我没有使用标记,所以我不明白为什么要配置服务器?不确定您在说什么,我运行的所有内容仍然是本地的。应该在哪里指定我在我的项目中指定了它?我没有使用标签,所以我不明白为什么我应该配置服务器?我可以在我的代码中复制它吗?或者当我的项目在线部署时,我必须等待测试它吗?请记住,我能够在另一个本地项目中看到kml(但那是在mac环境和php中)…任何关于这一点的想法都将是非常棒的,或者是一种测试我的问题是否确实是你所说的我的问题的方法:)已经非常感谢你研究这一点了。当我试图做你在9月/10月问的同样的事情时,翻查我读到的答案,在这里找到了:在你的初始答案中加入链接,我接受。。。谢谢你把这件事弄清楚!我可以在我的代码中复制它吗?或者当我的项目在线部署时,我必须等待测试它吗?请记住,我能够在另一个本地项目中看到kml(但那是在mac环境和php中)。。。关于这一点的任何想法都将是非常棒的,或者是一种测试我的问题是否确实是你所说的我的问题的方法:)已经非常感谢你研究了这个问题。当我试图做你在9月/10月问的同样的事情时,刚刚翻阅了我读到的答案,在这里找到了:把链接放在你的初始答案中,我接受。。。谢谢你把这件事弄清楚!
public ActionResult Index()
{
    var districts = db.districts.Include(d => d.city);
    return View(districts.ToList()); 
}