Подскажите, пожалуйста, есть ли какие то хитрости при добавлении на карту(mapCreateSiteObject, mapCommitObject), созданную ф-ей mapCreateAndAppendTempSite, объектов ?
Т.е. так: Меняю вид объекта, а на карте он отрисовывается в "старом" виде.
'Создать временную пользовательскую карту по открытой карте Declare Function mapCreateAndAppendTempSite Lib "gisacces.dll" (ByVal hMap As Long, ByVal rsc_name As Long) As Long Dim tmprsc As Long tmprsc = 0 hTmpMap = mapCreateAndAppendTempSite(hMap, tmprsc) Такое впечатление, что данные берутся из кого то сохраненного где-то файла ресурсов.
В райнтайме все происходит, т.е. ошибка - и mapCloseData - не происходит, "затирать" может где надо?
А ипользование ф-ии mapClearSite(HMAP hMap, HSITE hSite) где hmap-пользовательская карта(Sit), а hSite временная карта созданная ф-ей mapCreateAndAppendTempSite корректно? Или могут возникнуть проблеммы?
Подскажите, пожалуйста, как переоткрыть(очистить) временную карту(mapCreateAndAppendTempSite). Или только можно переоткрыть карту(и опять mapCreateAndAppendTempSite) по которой была созда временная?
Скажите, пожалуйста, возможно ли при построении зоны видимости с помощью ф-ии mapVisibilityZone избавиться от линий(т.е. просто зона прямой видимости без линии по радиусу и сектору).
Ни с трёх ни с пяти ни с четырёх точек создать подобъект мне так и не удалось. А если "дырка" на "дырку" попала то что произойдёт?
Вообще отступая от темы топика попробую объяснить то что я хочу сделать. Выбирается точка на карте(Hs). От этой точки стоятся лучи, заданной длины и лучи эти равны Lлуча, по кругу(азимут, 0-359, с шагом 0.5).
По ходу построения луча (луч строится с шагом равным размеру элемента матрицы высот) в каждом азимуте по ходу построения луча на расстоянии Lлуча определяется максимальная высота (переменная Hmax увеличивается если Hmax < высоты на шаге луча).
Таким образом я пытаюсь определить зону прямой видимости т.е. Если Hs>Hmax и высота отметки высоты на текущем шаге луча больше Hmax значит точка видна.
Подскажите, пожалуйста, как оптимально построить зону прямой видимости
Разработка идет в среде Visual Basic 6. mapCreateSiteObject - для временного Sit помогло. mapCreateObject - для временного Sit никак не получается. Проблем с TempSite пока не испытываю. Спасибо.
Потом пытаюсь добавить объект на временную карту typeObj = 2147319805 InvPoint = mapCreateObject(hTmpMap, 1, typeObj, 0) но mapAppendPointPlane InvPoint, CoordX, CoordY, 0 почемуто вызывает ошибку. или для добавления метрики в объект созданный на временной пользовательской карте нужно использовать другую ф-ию?
!!!! Я понял, спасибо, в запарке не заметил, что вызывал потом ф-ию mapGetHeightValue([B]hTmpMap[/B], Bx, By), а матрица то открыта - mapAppendData([B]hMap[/B], App.Path & "\КАРТА\h.mtw", 0, это и вызывало ошибку. За двумя зайцами...
Declare Function mapCreateAndAppendTempSite Lib "gisacces.dll" (ByVal hMap As Long, ByVal rsc_name As String) As Long Dim tmprsc As String tmprsc = App.Path & "\КАРТА\tmp.rsc" hTmpMap = mapCreateAndAppendTempSite(hMap, tmprsc)
VB6.exe - вообще вылетает с ошибкой. AppName: vb6.exe AppVer: 6.0.97.82 ModName: gisacces.dll ModVer: 9.15.6.26 Offset: 0002e905
Не подскажите, что по этому смещению в модуле gisacces.dll вызывает ошибку. Или как надо правильно объявить эту функцию в Visual Basic 6.