Ошибка в расширении "Координатные сетки"

0 голосов
спросил 09 Апр, 04 от PAS (2,860 баллов) в категории Программные продукты Esri

Добрый всем день!

Совсем недавно обнаружил ошибку в модуле расширения “Координатные сетки” (GratGrid.avx), поставляемым с AV.

Эта ошибка связана с тем, что когда отображается градусная сетка, уже на расстоянии 0.5 градуса от осевого меридиана ошибка по широте составляла 4 секунды (~120 м!)

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Оказывается, эта ошибка связана с неверным кодом  скрипта на основе которого сделано это расширение (GratLay.ave, в расширении это скрипт GratGrids.LayoutGraticule Creat).

 

Чтобы избавиться от этой ошибки, необходимо заменить в скрипте 4 строки

 

  ….

  point5=Point.Make(xMin+((xMax-xMin)/2),yMin)

  point6=Point.Make(xMax,yMin+((yMax-yMin)/2))

  point7=Point.Make(xMin+((xMax-xMin)/2),yMax)

  point8=Point.Make(xMin,yMin+((yMax-yMin)/2))

 

 на

  point5=Point.Make((xMin+(xMax-xMin)/2),yMin)

  point6=Point.Make(xMax,(yMin+(yMax-yMin)/2))

  point7=Point.Make((xMin+(xMax-xMin)/2),yMax)

  point8=Point.Make(xMin,(yMin+(yMax-yMin)/2))

 

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

 

ГЛАВНАЯ ОШИБКА вот в чем

Посмотрите код:

 

  latList = {}

  for each lat in latStart .. latEnd by latInterval

    aLine = Line.Make( lonStart@lat, lonEnd@lat )

    prjLine = aLine.ReturnProjected( thisPrj ).ReturnClipped( xyRect )

    if ( prjLine <> nil ) then

      latList = latList.Add( {lat, prjLine} )

    end

  end

 

Здесь при построении линии широты используется линия, построенная по ДВУМ!!!</F

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...