Итак, настроение у меня сегодня хорошее. так что выкладываю описание.
Сперва отрисовываем осевую линию, от которой и будет отсчитываться наша сетка. Причем рисуем ее в шейпе с типом содержимого - polyline M (это важно, т.к. этот тип позволяет сохранять информацию о направлении линии). Затем, выделяем линию, переходим в режим Modify Feature и щелкаем по ней правой клавишей. Выбираем Route Measure Editing-> Set As Distance... В появившемся окне вводим цифру 0. Теперь точки сетки будут проставляться начиная отсчет от НАЧАЛА линии. В таблице атрибутов создаем поле R_ID (это будет идентификатор нашей линии, можете назвать его по-другому) и вводим в него значение, например, "1". Итак, базовая часть готова.
После этого создаем таблицу типа dBASE Table с "координатами" точек (как вариант, подтягиваем таблицу из экселя, а потом в ArcMap экспортируем ее в данный формат по правой клавише через Data->Export), это необходимо, чтобы у каждой записи в таблице появился Object-ID.
В самой таблице будут следующие поля: R_ID (значение совпадает с линией, т.е. в нашем случае - 1, и одинаково для всех точек), M - шаг сетки вдоль линии (в моем примере это вертикальный, 50), точнее - расстояние от начала линии до точки, PK_OF - смещение точек относительно линии, может быть положительным и отрицательным. У меня были и те значения, и другие, т.к. линия была осевой и точки нужно было проставить и справа, и слева от нее.
Затем добавляем таблицу в ArcMap. Щелкаем по ней правой клавишей и выбираем Display Route Events. В появившемся меню пункты Route Identifier выбираем соответственно как R_ID, Measure - M, Offset - PK_OF и жмем ОК.
В итоге у нас появляется новый слой с точками под названием "*название таблицы* Events". Затем экспортируем его в .shp-файл и работаем с ним дальше как с обыкновенным шейпом.
На все про все у меня ушло минут 10 чистого времени (не считая 8 часов на выработку методики), а единственное неудобство заключается в формировании таблицы. У меня для сети размером 1,5х2км и шагом 50х50 метров получилась 1271 строка данных в таблице, но автозаполнение в MS Excel/OO.org Calc сильно ускоряет процесс ее подготовки.
Напоследок в качестве примера кусочек таблицы -
R_ID M PK_OF
1 0 0
1 50 0
1 100 0
1 150 0
1 200 0
1 0 50
1 50 50
1 100 50
1 150 50
1 200 50
1 0 100
1 50 100
1 100 100
1 150 100
1 200 100