Кто-либо знает о библиотеке в Java, который может проанализировать Файлы форм ESRI?

Мне интересно в письменной форме программа визуализации для дорожных данных в Файлах форм Тигра/Строки 2009 года. Я хотел бы разграничить данные для отображения всех дорог для моего графства.

Файл форм ESRI или просто файл форм являются популярным геопространственным векторным форматом данных для программного обеспечения географических информационных систем. Это разрабатывается и регулируется ESRI как (главным образом) открытая спецификация для совместимости данных среди ESRI и других продуктов 1 программного обеспечения, которые "файл форм" обычно отсылает к набору файлов с ".shp", ".shx", ".dbf", и другим расширениям на общем имени префикса (например, "озера.* "). Фактический файл форм имеет отношение конкретно к файлам с" .shp" расширение, однако один только этот файл является неполным для распределения, поскольку другие вспомогательные файлы требуются.

Кто-либо знает о существующих библиотеках для парсинга и чтения в данных строки для Файлов форм?

49
задан geographika 8 May 2010 в 02:11
поделиться

3 ответа

Вы можете легко измерить данные, передаваемые клиенту в ASP.NET, предполагая, что вы замените прямую загрузку с управляемым IIS с вашим собственным, что бы пойти что-то подобное:

while (context.Response.IsClientConnected) {

    bytesRead = ReadFileChunkAsByteArrayWIthOffsetOrWhatever(buffer, offset);

    context.Response.OutputStream.Write(buffer, 0, bytesRead);
    context.Response.Flush();

    offset += bytesRead;

    if (bytesRead != bufferSize)
        break;
}

это сложно сделать Это 100% надежно из в рамках ASP, но это можно сделать. Вы в значительной степени должны учитывать все возможные точки отказа и реагировать соответственно.

Проблема, хотя все еще - как кто-то упомянул выше - что нельзя знать , что клиент получил данные. Если деньги участвуют в этой транзакции, что может быть проблемой действительно быстро.

По этой причине наилучший подход будет использоваться пользовательский клиент загрузчика, например, one Amazon использует для покупок файлов MP3. Таким образом, вы не подвергаете себе себя, ни вашим клиентам для вагинов движущихся монетизированных битов над чем-то ненадежным как HTTP.

-121--3665424-

OpenDAP имеет Java API , который обеспечивает доступ к чтению и записи к файлам ESRI.

8
ответ дан 7 November 2019 в 11:47
поделиться

Этот регекс идеально подходит для меня.

^([ \u00c0-\u01ffa-zA-Z'\-])+$

Это хорошо работает в php-средах с использованием preg_match (), но не везде.

Он соответствует Jérémie O'Co-nor , поэтому я думаю, что он соответствует всем UTF-8 именам.

-121--1543627-

Если вы не можете поместить дракона в A, вам потребуется создать другую таблицу и другую таблицу ссылок. Проблема заключается в создании уникального набора данных, которые необходимо сохранить (другая таблица), который не может быть таким же набором, как A. Так как это не тот же набор, вы больше не можете использовать таблицу связей (AtoB), который имеет внешние ключи, гарантирующие, что ссылка является ссылкой из набора A. Таким образом, можно создать следующие таблицы:

imaginary _ creatures

  • id
  • name

imaginary _ creatures _ to _ b

  • imaginary _ creatures _ id (ссылка на таблицу imaginary_creatures)
  • b _ id (ссылка на таблицу зоопарков)

Позже, когда вы хотите получить всех существ в зоопарке, вы можете сделать UNION

SELECT A.Name FROM A where A.ID IN 
   (SELECT AB.A_ID FROM AtoB AB WHERE B_ID = 
      (SELECT B.ID FROM B WHERE B.Name = 'Zoo Name'))
UNION
SELECT i.name FROM imaginary_creatures i i.id IN 
   (SELECT ic.imaginary_creatures_id FROM imaginary_creatures_to_c ic 
    WHERE ic.b_id = (SELECT B.ID FROM B WHERE B.Name = 'Zoo Name'))

Возможно, есть лучший способ написать это, но это

-121--4180476-

Существует GeoTools или более точно этот класс ShapefaseDataStore .

5
ответ дан 7 November 2019 в 11:47
поделиться

GeoTools сделает это. Есть тонна банок, и вам не нужны большинство из них. Тем не менее, чтение Sharpfile - это всего лишь несколько строк.

File file = new File("mayshapefile.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);

  FeatureSource featureSource = dataStore.getFeatureSource(typeName);
  FeatureCollection collection = featureSource.getFeatures();
  FeatureIterator iterator = collection.features();


  try {
    while (iterator.hasNext()) {
      Feature feature = iterator.next();
      GeometryAttribute sourceGeometry = feature.getDefaultGeometryProperty();
    }
  } finally {
    iterator.close();
  }

} catch (Throwable e) {}
63
ответ дан 7 November 2019 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: