1

Visual Studio 2012のMVC4プロジェクトに問題があります。symfony2にバックオフィスを構築し、kmlファイルからロードされたポリゴンを使用してGoogleマップを表示できます。

今、私はasp.net(C#)で同じことをしようとしています...しかし、私のコードはkmlファイルにアクセスできないようです。

ファイルにアクセスするためにModelViewControllerシステムを使用していませんが、それが問題である可能性があります...

プロジェクトに「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()); 
}

どんな助けでも大歓迎です!

4

1 に答える 1

1

あなたの問題は、GoogleマップでKMLファイルをロードするために(少なくとも無料版の場合)、ウェブアクセス可能である必要があることだと思います(つまり、提供するURLは、ローカルだけでなくウェブからアクセスできる必要があります開発/本番サーバー)。したがって、「/Kmls/10.kml」は有効な URL ではなく、「http://myserver/KML」のようなものが必要です。

以下のコメントで提供されているように、同様の回答のある質問へのリンクを次に示します: Google Maps API および KML ファイル LocalHost 開発オプション

于 2013-01-09T19:01:48.500 に答える