MapBasic соединение указывает на регионы в карте

Я новичок в MapBasic, и это действительно трудно найти учебники, так что здесь вопрос:

У меня есть карта с регионами (каждый регион имеет свой атрибут), и у меня есть список точек (xy karthesian koordinates). Мне удалось прочитать в этой таблице (нашел учебник).

Но теперь мне нужно сделать следующее: взять каждую точку моего списка, найти ее на карте и назначить атрибут региона для точки.

Я думал о:

For lengthList
   select Attribute from Map where Map contains PointofList
   PointofList += Atrribute to PointofList
next

Это не предназначенный для работы мини-пример, он должен просто иллюстрировать то, что я хочу сделать.

Я довольно неопытен с этим кроссовером BASIC/SQL, и его трудно найти хорошие примеры в Интернете, поэтому я был бы благодарен за любую помощь, которую вы можете предоставить

2 ответа

Решение

На самом деле MapBasic не очень распространен (по крайней мере, здесь, в Stackru).

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

i = 1
Fetch First From PointofList
Do Until EOT(PointofList)
    Set Style Pen MakePen(100, 2, BLUE)
    Update PointofList Set Obj = CreateLine(Temp.FROM_X, Temp.FROM_Y, Temp.TO_X, Temp.TO_Y) Where RowId = i
    Fetch Next From PointofList
    i = i + 1
Loop
Commit Table PointofList

Ладно нашел сам.

Потому что MapBasic понимает SQL очень просто:

Add Column Value (tab1) From tab2 Set To Value Where contains

и мы закончили. Почему-то я не мог смириться с тем, что никакой петли здесь не нужно.

Другие вопросы по тегам