0

私はレールが初めてです。

私はこのコードを追加しようとしています:

$.ajax({
    url: "states.geojson",
    dataType: 'json',
    success: function load(d) {
        var states = L.geoJson(d).addTo(map);
        L.marker([38, -102], {
            icon: L.mapbox.marker.icon({
                'marker-color': '#f22'
            }),
            draggable: true
        }).addTo(map)
        .on('dragend', function(e) {
            var layer = leafletPip.pointInLayer(this.getLatLng(), states, true);
            document.getElementById('state').innerHTML = layer.length ?
                layer[0].feature.properties.name : '';
        });
    }
});

私はここから得ました: http://www.mapbox.com/mapbox.js/example/v1.0.0/point-in-polygon/

これは私の index.html.erb です:

<!DOCTYPE html>
<html>
<head>
  <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' />
  <script src='//api.tiles.mapbox.com/mapbox.js/v1.3.1/mapbox.js'></script>
  <link href='//api.tiles.mapbox.com/mapbox.js/v1.3.1/mapbox.css' rel='stylesheet' />
  <!--[if lte IE 8]>
    <link href='//api.tiles.mapbox.com/mapbox.js/v1.3.1/mapbox.ie.css' rel='stylesheet' >
  <![endif]-->
  <style>
    body { margin:0; padding:0; }
    #map { position:absolute; top:0; bottom:0; width:100%; }
  </style>
</head>
<body>
<style>
#state {
    position:absolute;
    top:10px;
    right:10px;
    background:#fff;
    font-size:30px;
    padding:10px;
    z-index:999;
}
</style>

<!-- <script src="leaflet-pip.min.js"></script> -->
<div id='map'></div>
<div id='state'></div>
<script type='text/javascript'>
var map = L.mapbox.map('map', 'lizozomro.map-6yvs8g1g')
    .setView([38, -102.0], 5);

$.ajax({
    url: "states.geojson",
    dataType: 'json',
    success: function load(d) {
        var states = L.geoJson(d).addTo(map);
        L.marker([38, -102], {
            icon: L.mapbox.marker.icon({
                'marker-color': '#f22'
            }),
            draggable: true
        }).addTo(map)
        .on('dragend', function(e) {
            var layer = leafletPip.pointInLayer(this.getLatLng(), states, true);
            document.getElementById('state').innerHTML = layer.length ?
                layer[0].feature.properties.name : '';
        });
    }
});
</script>
</body>
</html>

states.geojson でリソースが見つからないというエラー (404) が表示されます

正確にどこに配置すればよいのか、正しいパスを使用して参照する方法がわかりません。

現在、ルートアプリフォルダーにファイルのコピーがあり、1つはビューフォルダー(マップと呼ばれる)にあり、index.html.erbのすぐ隣にあります

リソースを正しく参照するにはどうすればよいですか?

4

1 に答える 1

0

フォルダに入れmy_project/public/ます。また、ファイルの名前をstates.geojson.json

于 2013-08-26T21:12:55.517 に答える