Я новичок в shapefile
обработке. Пожалуйста, сообщите мне, как выполнить мой запрос ниже.
Я использую этот шейп-файл tl_2018_us_aiannh.shp из census.gov: TIGER-LINE . Я должен получить группу блоков переписи объектов, таких как Блок , Тракт , Окружное подразделение и Округ подробности из шейп-файл на основе широты и долготы , предоставленных пользователем.
Мое требование - достичь этого только с помощью shapefile
, а не с помощью каких-либо API.
Может кто-нибудь помочь, на каком фреймворке я могу этого добиться?
То, что я пробовал / использовал до сих пор :
- Я использовал
GeoTools
, чтобы прочитать shapefile
. Могу ли я продолжать использовать то же самое? Будет ли мое требование достигнуто этим инструментом?
- Я просмотрел документацию census.gov , в которой говорится:
Бюро переписи населения присваивает код, и они появляются в таких полях, как
«TRACTCE», где «CE» означает перепись. Наконец, представленный государством
коды заканчиваются на «ST», такие как «SLDLST», и коды местных образовательных агентств
оканчивается на «LEA», как на «ELSDLEA».
Что я пробовал в своем коде по :
File file = new File("D:\\tl_2018_us_aiannh.shp");
try {
Map<String, String> connect = new HashMap();
connect.put("url", file.toURI().toString());
DataStore dataStore = DataStoreFinder.getDataStore(connect);
String[] typeNames = dataStore.getTypeNames();
String typeName = typeNames[0];
System.out.println("Reading content " + typeName);
SimpleFeatureSource featureSource = dataStore
.getFeatureSource(typeName);
SimpleFeatureCollection collection = featureSource.getFeatures();
SimpleFeatureIterator iterator = collection.features();
try {
while (iterator.hasNext()) {
SimpleFeature feature = iterator.next();
GeometryAttribute sourceGeometry = feature
.getDefaultGeometryProperty();
String name = (String) (feature).getAttribute("TRACTCE");
Property property = feature.getProperty("TRACTCE");
System.out.println(property);
}
} finally {
iterator.close();
}
} catch (Throwable e) {
e.getMessage();
}
Но я получаю ноль в качестве значения.
Любая помощь будет очень полезна.