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 ファイルも試しましたが、うまくいきませんでした。