2013-04-19 68 views
0

大家好,我使用的是開發人員開發web地圖。本地url的jquery getJSON

我使用GeoJSON的,我有這樣的代碼: https://scraperwiki.com/views/openlayers_geojson_example/edit/

這是代碼:

<script type="text/javascript"> 

// Start position for the map (hardcoded here for simplicity) 
var lat=50.90685 
var lon=-1.4029 
var zoom=12 

var map; //complex object of type OpenLayers.Map 

//Initialise the 'map' object 
$(function() { 
    $.getJSON("http://mapit.mysociety.org/area/66016.geojson", 
    "callback=?", 
    function(data, textStatus, jqXHR) { 
     map = new OpenLayers.Map('map', { 
     layers: [ 
      new OpenLayers.Layer.OSM.Mapnik("Mapnik"), 
     ], 
     controls: [ 
      new OpenLayers.Control.Navigation(), 
      new OpenLayers.Control.PanZoomBar(), 
      new OpenLayers.Control.LayerSwitcher(), 
      new OpenLayers.Control.Attribution()], 
     maxResolution: 'auto', 
     }); 

     var lonLat = new OpenLayers.LonLat(lon, lat) 
     .transform(
      new OpenLayers.Projection("EPSG:4326"), 
      map.getProjectionObject() 
     ); 

     map.setCenter(lonLat, zoom); 

     var vector_layer = new OpenLayers.Layer.Vector("GeoJSON"); 

     var geojson_format = new OpenLayers.Format.GeoJSON(); 

     var geometry = geojson_format.parseGeometry(data); 
     geometry.transform(
      new OpenLayers.Projection("EPSG:4326"), 
      map.getProjectionObject() 
    ); 

     var feature = new OpenLayers.Feature.Vector(geometry); 

     vector_layer.addFeatures([feature]); 

     map.addLayer(vector_layer); 
    }) 
}); 
</script> 

在:

$.getJSON("http://mapit.mysociety.org/area/66016.geojson", 
     "callback=?", 

它工作時,我從IIS本地主機 叫我嘗試像這樣改變:

$.getJSON("assets/json/66016.geojson", 
     "callback=?", 

,但它沒有工作,:(

請幫我爲什麼和如何使這項工作。

這是錯誤的:

HTTP錯誤404.0 - 找不到 本地主機---> /assets/json/66016.geojson?callback=jQuery152048599341535009444_1366340277133 & _ = 1366340277237

+1

「不工作」 是_永遠_足夠的問題說明。 –

+0

你在控制檯和網絡選項卡中看到了什麼? – SLaks

+0

問題可能是所用的相對路徑。解決方法是使用帶有應用程序的contextpath的url,例如'contextPath +'/assets/json/66016.geojson' –

回答

0

對不起球員,finnaly我得到我的回答是這樣的解決:

$.getJSON("assets/json/66016.geojson", 
     "callback=?", 

只是抹去 「回調=?」,

$.getJSON("/assets/json/66016.geojson", 
+0

除了'callback =?'的刪除之外,兩個URL之間還有更多的區別。你的第二個電話以'/'開頭,而你的第一個電話不是。注意相對路徑。您的應用程序是否部署在網站的根目錄或子文件夾中? – Snixtor

1

嘗試此

$.getJSON("/assets/json/66016.geojson", 
     "callback=?",