2016-05-19 12 views
1

私はちょうど与えられたLatLogのすべての病院に印をつけたいと思う。私はたくさん試しました。しかし、私の間違いを見つけることはできません。地域内のすべての病院を見つけるためのオーバーパスクエリとは何ですか?

var lat = 12.933; 
var lon = 77.612; 
var zoom = 13; 
var map; 

function init() { 
    map = new OpenLayers.Map("demoMap", { 
    controls: [ 
     new OpenLayers.Control.Navigation(), 
     new OpenLayers.Control.PanZoomBar(), 
     new OpenLayers.Control.LayerSwitcher(), 
     new OpenLayers.Control.Attribution() 
    ], 
    maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34), 
    maxResolution: 156543.0399, 
    numZoomLevels: 19, 
    units: 'm', 
    projection: new OpenLayers.Projection("EPSG:900913"), 
    displayProjection: new OpenLayers.Projection("EPSG:4326") 
    }); 

    layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); 
    map.addLayer(layerMapnik); 

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

    map.setCenter(lonLat, zoom); 

    map.addLayers([ 
    make_layer("http://overpass-api.de/api/interpreter?data=node[amenity=hospital];out+skel;", "red") 
    ]); 
} 

結果は表示されません。これはクエリやその他の問題でエラーが発生したためですか?

+1

問題を絞り込むためにデバッグを試しましたか?このような広範な問題を診断することは不可能です。質問に 'make_layer'関数を含めなかったので、特に「*は結果を表示しません」と記述されています*。 – kryger

+0

これはこの質問によく似ています:http://stackoverflow.com/questions/37314371/query-the-osm-data-using-node-js – mmd

答えて

0

(bbox)を忘れて、データを現在の境界ボックスに限定します。あなたが地球全体のデータを照会しているとき、クエリはタイムアウトまたはメモリ不足で終了する可能性が非常に高いでしょう。

(bbox)を追加する方法についていくつかの例については、このリンクを参照してください:http://overpass-api.de/open_layers_mashup.html

独自のコード内の任意の跨線橋クエリを埋め込む前に、まずhttp://overpass-turbo.eu/を通してそれを実行してください。構文は多少異なるかもしれませんが、コードを前もって行うことなく結果を評価するのに役立ちます。

関連する問題