1

http://download.geofabrik.de/europe/great-britain.htmlから wales-latest.osm.pbf を入手しました。これはウェールズの OSM ファイルです。http://www.openstreetmap.org/#map=19/51.50387/-3.08467を XML としてエクスポートすると、key:value ペアの border_type:city が得られます。

次のコードを使用して wales-latest.osm.pbf ファイルを解析すると、border_type:city のペアが見つかりません。

@Override
    protected void parseWays(List<Way> ways) {
        for (Way w : ways) {
            StringBuilder sb = new StringBuilder();
            sb.append("  Nodes: ");
            long lastRef = 0;
            for (Long ref : w.getRefsList()) {
                lastRef+= ref;
                sb.append(lastRef).append(" ");
            }
            sb.append("\n  Key=value pairs: ");
            boolean isCity=false;
            for (int i=0 ; i<w.getKeysCount() ; i++) {
                isCity=isCity||(getStringById(w.getKeys(i)).equals("border_type")&&(getStringById(w.getVals(i)).equals("city")));
                sb.append(getStringById(w.getKeys(i))).append("=")
                        .append(getStringById(w.getVals(i))).append(" ");
            }

            if (!isCity){
                continue;
            }

            System.out.println(sb.toString());
        }
    }

と置き換える"city""territorial"、一致を見つけることができます。

border_type:city は pbfs に存在しませんか? これは geofabrik.de pbfs に関連しているだけですか? スコットランドの osm.pbf ファイルも試しましたが、うまくいきませんでした。

4

1 に答える 1

0

1 つの問題は、関係ではなく方法だけを見ていることです。例として、カーディフを取り上げます。これはウェールズにあり、border_type=city でタグ付けされていますが、コードがそれを見つけられない方法をチェックしているだけなので.

ウェイとリレーションの両方を解析したい。

于 2013-10-05T01:13:40.400 に答える