Вверх ↑
Ответов: 113
Рейтинг: 1
#1: 2020-03-14 12:59:26 ЛС | профиль | цитата
Подскажите как сделать правильную отрисовку объекта. имеются координаты (выгрузка из программы, в ней на карте размечены зоны), делаю "преобразование" и по точкам создаю объект. пока придумал лишь от 0 точки, но если не сколько объектов, то они все будут считаться от 0 . а как сделать что бы несколько объектов были разнесены друг от друга по координатам?
Вообще идея программы в том что бы из нескольких таких же файлов найти похожие зоны и удалить их, схожесть может быть в том что одна зона чуть меньше или больше но примерно в том же месте (если криво разметили).

"схема"

Add(MainForm,2953706,49,91)
{
Width=780
Height=422
Caption="xml"
BorderStyle=3
Position=1
Point(onMouseWheel)
link(onCreate,3398032:doWork,[])
link(onMouseWheel,12234294:In,[])
}
Add(Button,7298907,140,231)
{
Left=5
Top=5
Caption="open"
link(onClick,10058238:doEvent1,[])
}
Add(Memo,9043254,994,301)
{
Left=5
Top=30
Width=445
Height=325
Font=[MS Sans Serif,10,0,0,1]
ScrollBars=3
Point(doLoad)
}
Add(ODialog,11754673,224,238)
{
Filter="All|*.xml"
link(onExecute,573759:doEvent1,[])
}
Add(BlockFind,4554300,504,287)
{
IncludeBlock=1
Delete=0
StartBlock="<areas>"
EndBlock="</areas>"
link(onSearch,6342802:doEvent1,[])
}
Add(Hub,573759,294,238)
{
InCount=2
OutCount=4
link(onEvent1,16233390:doValue,[(340,244)(340,90)])
link(onEvent2,4125790:doData,[(378,251)(378,202)])
link(onEvent3,11979195:doLoad,[])
link(onEvent4,5288053:doData,[(350,265)(350,293)])
}
Add(StrList,11979195,392,224)
{
Point(doLoad)
link(FileName,15450104:Var2,[])
}
Add(Memory,16233390,399,84)
{
link(onData,2112255:doWork2,[])
}
Add(Hub,10058238,182,231)
{
link(onEvent1,13920102:doWork1,[(214,237)(214,104)])
link(onEvent2,11754673:doExecute,[])
}
Add(DoData,5288053,392,287)
{
link(onEventData,10485112:doCharset,[])
link(Data,11979195:Text,[])
}
Add(Charset,10485112,455,287)
{
Type=7
link(onCharset,4554300:doSearch,[])
}
Add(Edit,5891520,455,84)
{
Left=75
Top=5
Width=375
Text=""
}
Add(VisualStrings,6911514,406,35)
{
Lines=#40:C:\\Users\\User\\Desktop//1areas.geo.xml|
Width=515
}
Add(GetIndexData,12625346,399,126)
{
link(Data1,16233390:Value,[])
link(Data2,6911514:Text,[])
}
Add(ChanelToIndex,13920102,294,98)
{
link(onIndex,12625346:doIndex,[(362,104)(362,132)])
}
Add(Hub,12162378,182,105)
{
link(onEvent1,13920102:doWork2,[])
link(onEvent2,573759:doEvent2,[(245,118)(245,251)])
}
Add(DoData,4125790,448,196)
{
link(onEventData,2112255:doWork3,[(492,202)(492,148)(438,148)])
link(Data,15450104:Var3,[(454,180)])
}
Add(GetDataEx,15450104,399,175)
{
link(Data,12625346:Var,[])
}
Add(HubEx,2112255,434,84)
{
link(onEvent,5891520:doText,[])
}
Add(Button,15939380,336,406)
{
Left=20
Top=365
Caption="test"
link(onClick,3882273:doEvent1,[])
}
Add(BlockFind,13168695,595,140)
{
StartBlock=" <area "
EndBlock="">"
link(onSearch,2964523:doAdd,[])
}
Add(StrList,2964523,693,140)
{
}
Add(BlockFind,11885779,693,203)
{
IncludeBlock=1
StartBlock="Address=""
EndBlock="""
link(onEndSearch,12819854:doSearch,[])
link(Text,2964523:Text,[])
AddHint(-3,39,64,13,StartBlock)
}
Add(Hub,6342802,546,287)
{
OutCount=4
link(onEvent1,13168695:doSearch,[(578,293)(578,146)])
link(onEvent2,883151:doSearch,[])
link(onEvent3,4702361:doWork2,[])
link(onEvent4,14510486:doAdd,[(574,314)(574,342)])
}
Add(BlockFind,12819854,819,210)
{
IncludeBlock=1
StartBlock="Home=""
EndBlock="""
AddHint(-3,39,54,13,StartBlock)
}
Add(BlockFind,883151,588,294)
{
StartBlock="<borders>"
EndBlock="</borders>"
AddHint(-3,39,62,13,StartBlock)
}
Add(BlockFind,13258719,952,98)
{
IncludeBlock=1
StartBlock="Address=""
EndBlock="""
link(onEndSearch,6985285:doSearch,[])
AddHint(-3,39,64,13,StartBlock)
}
Add(BlockFind,6985285,1043,105)
{
IncludeBlock=1
StartBlock="Home=""
EndBlock="""
link(onEndSearch,5229158:doSearch,[(1108,118)(1108,111)])
AddHint(-3,39,54,13,StartBlock)
}
Add(BlockFind,5229158,1141,105)
{
IncludeBlock=1
StartBlock="Plot=""
EndBlock="""
AddHint(-3,39,44,13,StartBlock)
}
Add(StrList,14510486,672,336)
{
}
Add(Check,3398032,119,105)
{
Check=1
link(onEvent,12162378:doEvent1,[])
}
Add(DoData,7719028,448,644)
{
link(onEventData,3554812:doSearch,[])
link(Data,4873850:Var2,[])
}
Add(BlockFind,3554812,497,644)
{
StartBlock="<borders>"
EndBlock="</borders>"
link(onSearch,10539276:doSearch,[])
AddHint(-3,39,62,13,StartBlock)
}
Add(BlockFind,10539276,574,644)
{
IncludeBlock=1
StartBlock="<location "
EndBlock="/>"
link(onSearch,14666313:doEvent1,[])
AddHint(-3,39,61,13,StartBlock)
}
Add(BlockFind,13798465,679,644)
{
IncludeBlock=1
StartBlock="Latitude=""
EndBlock="""
link(onSearch,1024438:doReplace,[])
AddHint(3,-39,64,13,StartBlock)
}
Add(BlockFind,14048567,679,700)
{
IncludeBlock=1
StartBlock="Longitude=""
EndBlock="""
link(onSearch,14626319:doReplace,[])
AddHint(-7,63,73,13,StartBlock)
}
Add(Hub,14666313,637,644)
{
OutCount=3
link(onEvent1,13798465:doSearch,[])
link(onEvent2,14048567:doSearch,[(669,657)(669,706)])
}
Add(Img_Polygon,2196734,1316,819)
{
PointsArray=[]
Color=255
BgColor=65535
Style=1
Size=3
link(Bitmap,2702758:Var1,[])
link(PointsArray,5623526:Var1,[(1329,812)(1224,812)(1224,957)])
}
Add(StrList,11084010,448,350)
{
Strings=#0:|72: <area Address="" Home="" Plot="" Index="10" Code="1.01.5" IDZone="">|17: <borders>|81: <location Latitude="55,8421668385123" Longitude="49,1394916479323" />|80: <location Latitude="55,842788962671" Longitude="49,1395269320174" />|81: <location Latitude="55,8427847232707" Longitude="49,1388035843436" />|81: <location Latitude="55,8421859936193" Longitude="49,1387512391333" />|18: </borders>|11: </area>|
}
Add(PointXY,11334038,1337,175)
{
link(X,15758202:Text,[(1343,156)(1245,156)])
link(Y,2702002:Text,[(1350,163)(1315,163)(1315,212)(1252,212)])
}
Add(Edit,15758202,1239,105)
{
Left=470
Top=330
Width=100
Text=""
link(onChange,9984504:doWork1,[(1306,111)])
}
Add(Edit,2702002,1246,168)
{
Left=470
Top=360
Width=100
Text=""
link(onChange,9984504:doWork2,[])
}
Add(Edit,2378877,1246,231)
{
Left=575
Top=360
Width=90
Text=""
link(Str,11334038:Point,[(1252,219)(1343,219)])
}
Add(HubEx,9984504,1302,168)
{
Angle=1
link(onEvent,2378877:doText,[(1306,207)(1234,207)(1234,237)])
}
Add(If_else,558974,693,91)
{
Type=2
Op2=Integer(0)
link(onTrue,15550453:doNext,[])
link(onFalse,15550453:doPrev,[])
}
Add(CounterEx,15550453,749,91)
{
Min=-10
Max=10
Default=1
Point(doPrev)
}
Add(LineBreak,15110062,637,91)
{
link(Out,558974:doCompare,[])
Primary=[12234294,-546,21]
}
Add(Hub,3882273,378,406)
{
OutCount=7
link(onEvent2,16350997:doEvent1,[])
link(onEvent4,9571678:doData,[(436,433)(436,482)])
link(onEvent6,7719028:doData,[(420,447)(420,650)])
link(onEvent7,11857825:doRead,[(854,454)(854,979)])
}
Add(Replace,1024438,728,644)
{
SubStr=","
DestStr="."
link(onReplace,14526380:doValue,[])
}
Add(Replace,14626319,721,700)
{
SubStr=","
DestStr="."
link(onReplace,15687681:doValue,[])
}
Add(Hub,6670488,1260,742)
{
OutCount=4
link(onEvent2,2702758:doWork1,[])
link(onEvent4,2196734:doDraw,[(1288,769)(1288,825)])
}
Add(StrList,375536,994,413)
{
}
Add(ArraySort,3762318,1008,483)
{
link(Array,375536:Array,[])
}
Add(HubEx,4702361,819,301)
{
link(onEvent,9043254:doAdd,[])
}
Add(Hub,16350997,924,413)
{
OutCount=3
link(onEvent1,9043254:doClear,[(966,419)(966,314)])
link(onEvent2,375536:doClear,[])
link(onEvent3,5698503:doClear,[(976,433)(976,391)])
}
Add(Hub,15610133,924,476)
{
OutCount=4
link(onEvent1,375536:doAdd,[(983,482)(983,419)])
link(onEvent2,3762318:doSort,[])
link(onEvent3,14959752:doEnum,[(991,496)(991,580)])
}
Add(ArrayEnum,14959752,1008,574)
{
link(onItem,2579756:doAdd,[(1098,580)(1098,503)])
link(onEndEnum,16683333:doEvent1,[])
link(Array,4624436:Var2,[])
}
Add(ArrayRW,7798429,1127,588)
{
Index=Integer(0)
link(onRead,2111254:doEnum,[])
link(Array,4624436:Var3,[(1133,537)])
link(Index,10293308:Result,[])
}
Add(GetDataEx,4624436,1008,532)
{
link(Data,3762318:ArraySort,[])
}
Add(StrList,2579756,1162,497)
{
}
Add(ArrayEnum,2111254,1176,588)
{
link(Array,2579756:Array,[])
}
Add(Math,10293308,1134,539)
{
OpType=1
Op2=1
link(Op1,3762318:Count,[(1140,527)(1021,527)])
}
Add(Hub,16683333,1071,581)
{
link(onEvent1,10293308:doOperation,[(1109,587)(1109,545)])
link(onEvent2,7798429:doRead,[])
}
Add(ChildForm,2702758,1316,749)
{
}
BEGIN_SDK
Add(EditMulti,14537445,21,21)
{
WorkCount=1
VarCount=1
Width=216
Height=102
link(Var1,300563:Bitmap,[(27,102)(111,102)])
link(doWork1,1297959:doVisible,[(28,27)(28,76)])
}
Add(MainForm,1297959,42,42)
{
Left=35
Top=105
Width=1300
Height=900
Visible=1
Position=1
Point(doVisible)
}
Add(MoveWindow,14762504,168,56)
{
link(Handle,300563:Handle,[(174,44)(146,44)(146,93)(118,93)])
}
Add(PaintBox,300563,105,49)
{
Left=20
Top=10
Width=3000
Height=3000
Color=-16777214
Cursor=8
WinStyle=1
Point(onMouseDown)
Point(Handle)
link(onMouseDown,14762504:doMove,[])
}
END_SDK
Add(Button,11149934,1197,742)
{
Left=85
Top=365
Caption="window"
link(onClick,6670488:doEvent1,[])
}
Add(Memory,14526380,805,644)
{
}
Add(Memory,15687681,868,700)
{
link(onData,8032957:doEvent1,[(968,706)(968,776)])
}
Add(FormatStr,6569398,1036,770)
{
DataCount=4
Mask="%1* %2 ///// %3 * %4"
link(Str1,9395571:Var2,[])
link(Str2,11023880:Var2,[])
link(Str3,6142566:Var2,[])
link(Str4,9104765:Var2,[])
AddHint(-165,40,119,13,Mask)
}
Add(DoData,9571678,539,476)
{
link(onEventData,2869078:doSearch,[])
link(Data,4873850:Var3,[(545,439)])
}
Add(BlockFind,2869078,588,476)
{
StartBlock="<borders>"
EndBlock="</borders>"
link(onSearch,14455733:doSearch,[])
AddHint(-3,39,62,13,StartBlock)
}
Add(BlockFind,14455733,665,476)
{
IncludeBlock=1
StartBlock="<location "
EndBlock="/>"
link(onSearch,9159345:doEvent1,[])
AddHint(-3,39,61,13,StartBlock)
}
Add(BlockFind,13465121,770,476)
{
IncludeBlock=1
StartBlock="Latitude=""
EndBlock="""
link(onSearch,14817959:doReplace,[])
AddHint(3,-39,64,13,StartBlock)
}
Add(Replace,14817959,819,476)
{
SubStr=","
DestStr="."
link(onReplace,15610133:doEvent1,[])
}
Add(GetDataEx,4873850,448,434)
{
link(Data,11084010:Text,[])
}
Add(StrList,5698503,1225,378)
{
}
Add(ArraySort,14575941,1239,448)
{
link(Array,5698503:Array,[])
}
Add(Hub,1304257,1155,441)
{
OutCount=4
link(onEvent1,5698503:doAdd,[(1214,447)(1214,384)])
link(onEvent2,14575941:doSort,[])
link(onEvent3,14312513:doEnum,[(1222,461)(1222,545)])
}
Add(ArrayEnum,14312513,1239,539)
{
link(onItem,13839879:doAdd,[(1329,545)(1329,468)])
link(onEndEnum,13939418:doEvent1,[])
link(Array,11617149:Var2,[])
}
Add(ArrayRW,3430946,1358,553)
{
Index=Integer(0)
link(onRead,6593934:doEnum,[])
link(Array,11617149:Var3,[(1364,502)])
link(Index,3694930:Result,[])
}
Add(GetDataEx,11617149,1239,497)
{
link(Data,14575941:ArraySort,[])
}
Add(StrList,13839879,1393,462)
{
}
Add(ArrayEnum,6593934,1407,553)
{
link(Array,13839879:Array,[])
}
Add(Math,3694930,1365,504)
{
OpType=1
Op2=1
link(Op1,14575941:Count,[(1371,492)(1252,492)])
}
Add(Hub,13939418,1302,546)
{
link(onEvent1,3694930:doOperation,[(1340,552)(1340,510)])
link(onEvent2,3430946:doRead,[])
}
Add(BlockFind,3576839,777,539)
{
IncludeBlock=1
StartBlock="Longitude=""
EndBlock="""
link(onSearch,13465981:doReplace,[])
AddHint(-7,63,73,13,StartBlock)
}
Add(Replace,13465981,819,539)
{
SubStr=","
DestStr="."
link(onReplace,1304257:doEvent1,[(898,545)(898,447)])
}
Add(Hub,9159345,721,476)
{
link(onEvent1,13465121:doSearch,[])
link(onEvent2,3576839:doSearch,[(756,489)(756,545)])
}
Add(MathParse,8898088,1099,777)
{
MathStr="( %2 - %1 ) * 1000000"
link(X1,9395571:Var3,[(1105,744)])
link(X2,6142566:Var3,[(1112,726)])
}
Add(Hub,8032957,987,770)
{
OutCount=4
link(onEvent1,6569398:doString,[])
link(onEvent2,8898088:doCalc,[])
link(onEvent3,1828529:doCalc,[])
link(onEvent4,11166190:doData,[(1029,797)(1029,909)])
}
Add(GetDataEx,9395571,1036,739)
{
Angle=3
link(Data,14526380:Value,[(811,744)])
}
Add(GetDataEx,6142566,1050,721)
{
link(Data,7798429:Item,[(1056,644)(1133,644)])
}
Add(MathParse,1828529,1148,784)
{
MathStr="( %2 - %1 ) * 1000000"
link(X1,11023880:Var3,[(1154,751)])
link(X2,9104765:Var3,[(1161,733)])
}
Add(GetDataEx,11023880,1043,746)
{
Angle=3
link(Data,15687681:Value,[(874,751)])
}
Add(GetDataEx,9104765,1057,728)
{
link(Data,3430946:Item,[(1063,678)(1364,678)])
}
Add(PointXY,11941490,1099,847)
{
link(X,8898088:Result,[])
link(Y,1828529:Result,[(1112,832)(1154,832)])
}
Add(Memo,16579197,1421,280)
{
Left=455
Top=35
Width=315
Height=290
}
Add(Button,15057701,1155,280)
{
Left=680
Top=360
Caption="convert"
link(onClick,13767106:doData,[])
}
Add(DoData,13767106,1246,280)
{
link(onEventData,16579197:doAdd,[])
link(Data,2378877:Text,[])
}
Add(StrList,15572789,1253,903)
{
}
Add(DoData,11166190,1099,903)
{
link(onEventData,5883012:doWork2,[])
link(Data,11941490:Point,[])
}
Add(ArrayRW,11857825,1267,973)
{
Index=Integer(0)
link(onRead,5883012:doWork3,[(1311,979)(1311,945)(1166,945)])
link(Array,5623526:Var2,[])
}
Add(HubEx,5883012,1162,903)
{
link(onEvent,15572789:doAdd,[])
}
Add(GetDataEx,5623526,1267,952)
{
link(Data,15572789:Array,[])
}
Add(Label,3619990,154,42)
{
Left=455
Top=335
Width=11
Height=17
Caption="X"
}
Add(Label,5345752,133,42)
{
Left=455
Top=360
Width=11
Height=17
Caption="Y"
}
Add(StrList,2261061,392,350)
{
Strings=#0:|72: <area Address="" Home="" Plot="" Index="10" Code="1.01.5" IDZone="">|17: <borders>|81: <location Latitude="55,8421668385123" Longitude="49,1394916479323" />|80: <location Latitude="55,842788962671" Longitude="49,1395269320174" />|81: <location Latitude="55,8427847232707" Longitude="49,1388035843436" />|81: <location Latitude="55,8421859936193" Longitude="49,1387512391333" />|18: </borders>|11: </area>|72: <area Address="" Home="" Plot="" Index="10" Code="1.01.5" IDZone="">|17: <borders>|81: <location Latitude="55,8343152400566" Longitude="49,1514834455983" />|81: <location Latitude="55,8343632721057" Longitude="49,1514780151826" />|81: <location Latitude="55,8343693714095" Longitude="49,1509281855776" />|81: <location Latitude="55,8343083783296" Longitude="49,1509336159933" />|18: </borders>|11: </area>|72: <area Address="" Home="" Plot="" Index="10" Code="1.01.5" IDZone="">|17: <borders>|81: <location Latitude="55,8361338238948" Longitude="49,1254430798832" />|81: <location Latitude="55,8361767513049" Longitude="49,1254484443011" />|81: <location Latitude="55,8361594297252" Longitude="49,1249803988212" />|81: <location Latitude="55,8361172554067" Longitude="49,1250085620167" />|18: </borders>|11: </area>|
}

карма: 0
well done turner
0
Редактировалось 4 раз(а), последний 2020-03-14 17:38:03