Yoko
http://forum.yoko.com.ua/

перевод градусев в мировые координаты...
http://forum.yoko.com.ua/viewtopic.php?f=3&t=16682
Page 1 of 1

Author:  volhram [ 2011-06-21 16:54:14 ]
Post subject:  перевод градусев в мировые координаты...

Всем привет.
Может кто видел готовую функцию, для преобразования координат?
читаю гамп, там текст "100°43'N,166°21'E"
как бы его скриптом преобразовать в "3689 478"

Author:  ZeroDX [ 2011-06-21 19:36:16 ]
Post subject:  Re: перевод градусев в мировые координаты...

А есть ещё примеры?

Author:  Mirage [ 2011-06-21 21:53:49 ]
Post subject:  Re: перевод градусев в мировые координаты...

Возможно поможет.

Author:  Sirocco [ 2011-06-22 05:15:04 ]
Post subject:  Re: перевод градусев в мировые координаты...

http://uo.stratics.com/uoam/geo.shtml

Author:  volhram [ 2011-06-22 07:22:39 ]
Post subject:  Re: перевод градусев в мировые координаты...

Sirocco wrote:
http://uo.stratics.com/uoam/geo.shtml

спасибо, что то интересное...поковыряюсь)
а кто знает точный размер мира в тайлах на АОСе, по карте посмотрел...получилось 5120 на 4095, но боюсь это не точно...

Author:  volhram [ 2011-06-22 07:23:24 ]
Post subject:  Re: перевод градусев в мировые координаты...

ZeroDX wrote:
А есть ещё примеры?

74°58'S,86°41'E 2556 2477
158°54'N,174°47'W 3958 3913

Author:  volhram [ 2011-06-25 08:38:28 ]
Post subject:  Re: перевод градусев в мировые координаты...

ну вот....написал перевод градусов в мировые координаты, если кому интересно выложу..

Author:  Mirage [ 2011-06-25 09:22:00 ]
Post subject:  Re: перевод градусев в мировые координаты...

volhram wrote:
ну вот....написал перевод градусов в мировые координаты, если кому интересно выложу..

Не нафиг, никому не интересно. Мы тут так просто тусуемся :mrgreen:
Выкладывай конечно.

Author:  volhram [ 2011-06-25 11:52:19 ]
Post subject:  Re: перевод градусев в мировые координаты...

ну мало ли, я вот играю лет 12 в ультиму, только сейчас меня кольнуло, вдруг понадобилось...
в общем в функцию передаётся строка формата "98°42'S,64°32'W"
возвращает строку "xxxx:yyyy"
использую для расшифровки координат в записках из бутылок...
может где то можно и координаты кладов так расшифровать, у нас на сервере не катит...
это если хотите автоматизировать процесс копания кладов)
иногда ошибается на один тайл, причину пока не понял, но для ловли по мессагам и для копки кладов это не существенно...
Code:
sub ReadMessage(gradus)
var GradX, GradY, MinX, MinY, znakX, znakY, NSWE='', i
var X=0,Y=0, xy
for i=0 to Len(gradus)
   if mid(gradus,i,1) == 'N' then
      NSWE=NSWE+'N'
   end if
   if mid(gradus,i,1) == 'S' then
      NSWE=NSWE+'S'
   end if
   if mid(gradus,i,1) == 'W' then
      NSWE=NSWE+'W'
   end if
   if mid(gradus,i,1) == 'E' then
      NSWE=NSWE+'E'
   end if
next
if NSWE == 'NW' then
   znakX=-1
   znakY=-1
end if
if NSWE == 'SW' then
   znakX=-1
   znakY=1
end if
if NSWE == 'NE' then
   znakX=1
   znakY=-1
end if
if NSWE == 'SE' then
   znakX=1
   znakY=1
end if
for i=0 to Len(gradus)
   if mid(gradus,i,1) == '°' then
      GradY=val(mid(gradus,0,i))
      MinY=val(mid(gradus,i+1,i+3))
   end if
   if mid(gradus,i,1) == ',' then
      gradus=mid(gradus,i+1,Len(gradus))
   end if
next
for i=0 to Len(gradus)
   if mid(gradus,i,1) == '°' then
      GradX=val(mid(gradus,0,i))
      MinX=val(mid(gradus,i+1,i+3))
   end if
next
GradX=MinX/60+GradX
GradY=MinY/60+GradY
if ((NSWE=='NW') || (NSWE=='SW')) && GradX > 93.016666 then
   X = str((1237-(GradX-93.016666)*1280/90+3884), 0)
end if
if ((NSWE=='NW') || (NSWE=='NE')) && GradY > 142.733333 then
   Y = str((424-(GradY-142.733333)*1024/90+3673), 0)
end if
if X==0 then
   X = str(((GradX*5120)/360*znakX+1323), 0)
end if
if Y==0 then
   Y = str(((GradY*4095)/360*znakY+1624), 0)
end if
xy=X+':'+Y
return xy
end sub

Author:  Scripts Writer [ 2011-06-25 13:15:39 ]
Post subject:  Re: перевод градусев в мировые координаты...

volhram wrote:
ну мало ли, я вот играю лет 12 в ультиму, только сейчас меня кольнуло, вдруг понадобилось...

http://ru.wikipedia.org/wiki/Ultima
Quote:
Ultima Online: Renaissance (3 апреля 2000)


:)

Author:  volhram [ 2011-06-25 13:42:30 ]
Post subject:  Re: перевод градусев в мировые координаты...

Scripts Writer wrote:
volhram wrote:
ну мало ли, я вот играю лет 12 в ультиму, только сейчас меня кольнуло, вдруг понадобилось...

http://ru.wikipedia.org/wiki/Ultima
Quote:
Ultima Online: Renaissance (3 апреля 2000)


:)

не, я знакомился с ультимой с фри оскома...там ещё ренесанса не было..
хорошая ссылка, сейчас что нить найду, поиграю)

Author:  volhram [ 2011-06-25 15:55:15 ]
Post subject:  Re: перевод градусев в мировые координаты...

у меня ещё вопрос...
не нашёл способ достать свойства итема
например:
Attachment:
123.JPG
123.JPG [ 13.52 KiB | Viewed 6874 times ]

если использовать uo.click, то в журнале пишется You see:имя, без всех тех свойсв, которые на рисунке....
getname ничего не даёт...
свойства появляются только при наведении курсора, как бы их скриптом прочитать?

Author:  Mirage [ 2011-06-25 15:57:58 ]
Post subject:  Re: перевод градусев в мировые координаты...

всего скорее скиллом идентификацией или lorom попробуй

Author:  danielxd [ 2020-04-09 02:48:13 ]
Post subject:  Re: перевод градусев в мировые координаты...

volhram wrote:
ну мало ли, я вот играю лет 12 в ультиму, только сейчас меня кольнуло, вдруг понадобилось...
в общем в функцию передаётся строка формата "98°42'S,64°32'W"
возвращает строку "xxxx:yyyy"
использую для расшифровки координат в записках из бутылок...
может где то можно и координаты кладов так расшифровать, у нас на сервере не катит...
это если хотите автоматизировать процесс копания кладов)
иногда ошибается на один тайл, причину пока не понял, но для ловли по мессагам и для копки кладов это не существенно...
Code:
sub ReadMessage(gradus)
var GradX, GradY, MinX, MinY, znakX, znakY, NSWE='', i
var X=0,Y=0, xy
for i=0 to Len(gradus)
   if mid(gradus,i,1) == 'N' then
      NSWE=NSWE+'N'
   end if
   if mid(gradus,i,1) == 'S' then
      NSWE=NSWE+'S'
   end if
   if mid(gradus,i,1) == 'W' then
      NSWE=NSWE+'W'
   end if
   if mid(gradus,i,1) == 'E' then
      NSWE=NSWE+'E'
   end if
next
if NSWE == 'NW' then
   znakX=-1
   znakY=-1
end if
if NSWE == 'SW' then
   znakX=-1
   znakY=1
end if
if NSWE == 'NE' then
   znakX=1
   znakY=-1
end if
if NSWE == 'SE' then
   znakX=1
   znakY=1
end if
for i=0 to Len(gradus)
   if mid(gradus,i,1) == '°' then
      GradY=val(mid(gradus,0,i))
      MinY=val(mid(gradus,i+1,i+3))
   end if
   if mid(gradus,i,1) == ',' then
      gradus=mid(gradus,i+1,Len(gradus))
   end if
next
for i=0 to Len(gradus)
   if mid(gradus,i,1) == '°' then
      GradX=val(mid(gradus,0,i))
      MinX=val(mid(gradus,i+1,i+3))
   end if
next
GradX=MinX/60+GradX
GradY=MinY/60+GradY
if ((NSWE=='NW') || (NSWE=='SW')) && GradX > 93.016666 then
   X = str((1237-(GradX-93.016666)*1280/90+3884), 0)
end if
if ((NSWE=='NW') || (NSWE=='NE')) && GradY > 142.733333 then
   Y = str((424-(GradY-142.733333)*1024/90+3673), 0)
end if
if X==0 then
   X = str(((GradX*5120)/360*znakX+1323), 0)
end if
if Y==0 then
   Y = str(((GradY*4095)/360*znakY+1624), 0)
end if
xy=X+':'+Y
return xy
end sub


Я не смог запустить этот код, на линии произошла ошибка

Runtime Error:
GradX = MinX / 60 + GradX

(google translate)

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/