Помощник
|
Карта |
Neznaika_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
Webmaster_hb |
14.1.2009, 11:15;
Ответить: Webmaster_hb
Сообщение
#2
|
|
Neznaika, приведенного кода не достаточно...
дайте ссылку на просмотр этого чуда либо выложите архив полных исходников |
|
|
Neznaika_hb
|
Сообщение
#3
|
|
вот полный исходника
<%@ Language="JavaScript" %>
<!-- METADATA TYPE="typelib" FILE="C:\MapRoot\wmobj.dll" --> <% var Map,misc,lay,collect,rec,fld,cur,obj,dbtab,sty var locpth,home,sfile,simg,s var gst var mapw,maph var act,tool var zoom,cx,cy var cxMini, cyMini var tmp_mapw, tmp_maph, tmp_cx, tmp_cy, tmp_zoom var scrx,scry var surl,simgurl,strackurl,snear var scount; var mask,tbl,id var dmask var j,n var spoi,rpoi,dir var ntrack,inc,x,y,x0,y0 var nearx,neary,dist var laymetadata,fldmetadata var IdField,NameField,FindField var hidetxt, first_zm var mytool, val1 var mass=new Array() var tt1,tt2,test1, test2 var setcls=0 var x1,y1,x2,y2 resi="" resj="" countij="" curLay="" uniqBuild="" sUniq="" countUniq="" scount = 0 Response.Expires=0 misc=Server.CreateObject("wmobj.Miscell") misc.RevertToSelf() Map=Server.CreateObject("wmobj.Map") locpth=Server.Mappath(Request.ServerVariables("PATH_INFO")) locpth=misc.ExtractDir(locpth) home=misc.HomeDir act=Request.QueryString("act")() gst=Request.QueryString("map")() mapw=Request.QueryString("mapw")() maph=Request.QueryString("maph")() cx=Request.QueryString("cx")() cy=Request.QueryString("cy")() zoom=Request.QueryString("zoom")() scrx=Request.QueryString("tool.x")() scry=Request.QueryString("tool.y")() tool=Request.QueryString("tool")() tbl=Request.QueryString("lay")() id=Request.QueryString("id")() mask=Request.QueryString("mask")() dmask=Request.QueryString("dmask")() nearx=Request.QueryString("nearx")() neary=Request.QueryString("neary")() mytool=Request.QueryString("mytool")() x1=Request.Querystring("x1")() y1=Request.Querystring("y1")() x2=Request.Querystring("x2")() y2=Request.Querystring("y2")() if (gst==null) { gst="first_db_maps" } if (mapw==null) { mapw=500 } if (maph==null) { maph=400 } if (cx==null) { cx=0 } if (cy==null) { cy=0 } if (zoom==null) { zoom=0 } if (nearx==null) { nearx=0 } if (neary==null) { neary=0 } if (tool==null) { tool="inf" } //? if (tbl==null) { tbl="" } if (id==null) { id="" } if (mask==null) { mask="" } if (dmask==null) { dmask="" } if (scrx==null) { scrx=0 } if (scry==null) { scry=0 } if (x1==null) { x1=0 } if (y1==null) { y1=0 } if (x2==null) { x2=0 } if (y2==null) { y2=0 } mleft=Request.QueryString("left.x")() mright=Request.QueryString("right.x")() mup=Request.QueryString("up.x")() mdown=Request.QueryString("down.x")() if (mleft==null) { mleft=0 } if (mright==null) { mright=0 } if (mup==null) { mup=0 } if (mdown==null) { mdown=0 } if (scrx!=0 && scry!=0) { act="use_tool" } if (mleft!=0) { act="left" } if (mright!=0) { act="right" } if (mup!=0) { act="up" } if (mdown!=0) { act="down" } Map.OpenGeoset("C:\\MapRoot\\Maps\\first_db_maps\\first_db_maps.mpr") lay=Map.AddMemLayer("tracks") sty=lay.LabelStyle sty.Auto=true sty.TextBgrTransparent=false sty.TextFontStyle=0001 lay.LabelStyle=sty if (mapw!=0) { Map.Width=mapw } if (maph!=0) { Map.Height=maph } if (cx!=0) { Map.CenterX=parseFloat(cx) } if (cy!=0) { Map.CenterY=parseFloat(cy) } if (zoom!=0) { Map.Zoom=parseFloat(zoom) } first_zm=24330.5246432796 if (Request.QueryString("vis").Count!=0) { for (j=0; j<Map.LayersCount; j++){ lay=Map.Layers(j) lay.Visible=false } var visobj=new Enumerator(Request.QueryString("vis")) while (!visobj.atEnd()) { var itemvis=visobj.item() j=parseInt(itemvis) lay=Map.Layers(j) lay.Visible=true visobj.moveNext() } } if (act=="left") { Map.CenterX=Map.CenterX-Map.Zoom/2 } if (act=="right") { Map.CenterX=Map.CenterX+Map.Zoom/2 } if (act=="up") { Map.CenterY=Map.CenterY+Map.Zoom/2 } if (act=="down") { Map.CenterY=Map.CenterY-Map.Zoom/2 } if (act=="use_tool") { if (tool=="minimap") { Map.Width=260 Map.Height=320 Map.CenterX=1500 Map.CenterY=-160 Map.Zoom=33000 mpoi1=Server.CreateObject("wmobj.ScreenPoint") mpoi1.x=x1 mpoi1.y=y1 tpoint1=Map.ScreenToMap(mpoi1) x1=tpoint1.x y1=tpoint1.y if (mapw!=0) { Map.Width=mapw } if (maph!=0) { Map.Height=maph } Map.CenterX=x1 Map.CenterY=y1 if (zoom!=0) { Map.Zoom=parseFloat(zoom) } } if (tool=="recenter") { mpoint=Server.CreateObject("wmobj.RealPoint") mpoint.x=Map.CenterX mpoint.y=Map.CenterY tpoint=Map.MapToScreen(mpoint) centerx=tpoint.x centery=tpoint.y scrx=parseFloat(centerx)+(parseFloat(x1)-parseFloat(x2)) scry=parseFloat(centery)+(parseFloat(y1)-parseFloat(y2)) Map.RecenterByScreen(scrx,scry) } if (x1!=0) { if (tool=="zoomin") { scrx= ((Math.max(x1,x2)-Math.min(x1,x2))/2)+Math.min(x1,x2) scry= ((Math.max(y1,y2)-Math.min(y1,y2))/2)+Math.min(y1,y2) Map.RecenterByScreen(scrx,scry) mpoi1=Server.CreateObject("wmobj.ScreenPoint") mpoi1.x=x1 mpoi1.y=y1 tpoint1=Map.ScreenToMap(mpoi1) x1=tpoint1.x y1=tpoint1.y mpoi2=Server.CreateObject("wmobj.ScreenPoint") mpoi2.x=x2 mpoi2.y=y2 tpoint2=Map.ScreenToMap(mpoi2) x2=tpoint2.x y2=tpoint2.y Map.Zoom=Math.max(x1,x2)-Math.min(x1,x2) } } else { if (tool=="zoomin") { Map.Zoom=Map.Zoom/2 Map.RecenterByScreen(scrx,scry) } } if (tool=="zoomout") { Map.Zoom=Map.Zoom*2 Map.RecenterByScreen(scrx,scry) } } if (act=="plus") { Map.Zoom=Map.Zoom/2 } if (act=="minus") { Map.Zoom=Map.Zoom*2 } if (act=="zoom01") { Map.Zoom=first_zm/64 var mytool="zoom01" } if (act=="zoom02") { Map.Zoom=first_zm/32 var mytool="zoom02" } if (act=="zoom03") { Map.Zoom=first_zm/16 var mytool="zoom03" } if (act=="zoom04") { Map.Zoom=first_zm/8 var mytool="zoom04" } if (act=="zoom05") { Map.Zoom=first_zm/4 var mytool="zoom05" } if (act=="zoom06") { Map.Zoom=first_zm var mytool="zoom06" } if (Map.Zoom==first_zm) { mytool="zoom06" } if ((tbl!="") && (id!="")) { lay=Map.Layers(tbl) IdField="" NameField="" laymetadata=lay.MetaData fldmetadata=laymetadata.GetFieldByType("id") if (!(fldmetadata == null)) { IdField=fldmetadata.FieldName } fldmetadata=laymetadata.GetFieldByType("name") if (!(fldmetadata == null)) { NameField=fldmetadata.FieldName } cur=lay.Table.CreateCursor() if (tbl!="Здания") { cur.AddCondition(IdField,id) } else { cur.AddCondition(NameField,id) } cur.Open() rec=cur.ReadRecord() if (!(rec == null)) { lay.Select(rec) Map.Marker.Visible=true if (tbl!="Здания") { var myMarkerText = rec.FieldValues(NameField); } else { var myMarkerText = rec.FieldValues("street1") + " д. " + rec.FieldValues("house1"); } Map.Marker.Text=myMarkerText+"" obj=rec.Feature Map.Marker.Position=obj.Center if (act=="show_obj") { lay.ShowObject(rec,sfCenter); setcls=1 } } } //для отображения информации в подсказке if ((act=="use_tool") && (tool=="inf")) { j=0 do { lay=Map.Layers(j) n=0 var geo1=lay.Table.GeoType if (lay.Visible && lay.Information && (geo1==1) && !(lay.IsZoomed)) { collect=lay.SearchAtPointXY(scrx-1,scry-1) n=collect.Count } j=j+1 } while (j<Map.LayersCount && n==0) if (n>0) { rec=collect.Records(0) laymetadata=lay.MetaData hidetxt="" for (j=0; j<laymetadata.FieldsCount; j++) { fldmetadata=laymetadata.Fields(j) if (!(fldmetadata.Hidden)) { s=fldmetadata.Alias if (s==null) { s=fldmetadata.FieldName } hidetxt=rec.FieldValues(fldmetadata.FieldName) } } lay.Select(rec) Map.Marker.Visible=true if (hidetxt!="") { Map.Marker.Text=hidetxt } else { Map.Marker.Text="Нет информации" } obj=rec.Feature spoi=Server.CreateObject("wmobj.ScreenPoint") spoi.x=scrx spoi.y=scry rpoi=Map.ScreenToMap(spoi) Map.Marker.Position=rpoi } if (act=="show_obj") { lay.ShowObject(rec,sfUnZoom+sfCenter+sfSize) } } inc=0 if (act=="use_tool" && tool=="track") //рисуем и сохраняем точку на карте { spoi=Server.CreateObject("wmobj.ScreenPoint") spoi.x=scrx spoi.y=scry rpoi=Map.ScreenToMap(spoi) x0=rpoi.x y0=rpoi.y inc=1 } surl="map=" + gst + "&mapw=" + Map.Width + "&maph=" + Map.Height surl=surl + "&cx=" + Map.CenterX + "&cy=" + Map.CenterY + "&zoom=" + Map.Zoom surl=surl + "&tool=" + tool + "&mytool=" + mytool snear="&nearx=" + nearx + "&neary=" + neary for (j=0; j<Map.LayersCount; j++) { lay=Map.Layers(j) if (lay.Visible) { surl=surl + "&vis=" + j } } strackurl="" if (inc>0) { //strackurl=strackurl + "&trx0=" + x0 + "&try0=" + y0 if (Request.QueryString("trx0").Count==0) strackurl=strackurl+"trx0="+x0+";try0="+y0+";" } for (j=1; j<Request.QueryString("trx0").Count; j++) { x=parseFloat(Request.QueryString("trx0")(j)) y=parseFloat(Request.QueryString("try0")(j)) //strackurl=strackurl + "&trx0=" + x + "&try0=" + y //strackurl=strackurl+"trx0="+x+";try0="+y+";" } //URL for map GIF image query (map.asp) simgurl="map.asp?" + surl + "&lay=" + tbl + "&id=" + id //current map state URL surl=Request.ServerVariables("PATH_INFO") +"?" + surl //draw track ntrack=Request.QueryString("trx0").Count tt1=ntrack+inc valruller="" if (tt1==1) { lay=Map.Layers("tracks") dbtab=lay.Table rec=dbtab.CreateRecord(ftSymbolFeature) rec.FieldValues(1)="" obj=rec.Feature sty=obj.Style //set object style sty.SymbolTTFontName="Wingdings" sty.SymbolTTShape=167 sty.SymbolTTSize=20 sty.SymbolTTColor=255*256*256 obj.Style=sty rpoi=Server.CreateObject("wmobj.RealPoint") if (inc>0) { rpoi.x=x0 rpoi.y=y0 } else { rpoi.x=parseFloat(Request.QueryString("trx0")(1)) rpoi.y=parseFloat(Request.QueryString("try0")(1)) } obj.Center=rpoi obj.Validate() rec.Insert() } else { if (tt1>1) { lay=Map.Layers("tracks") dbtab=lay.Table rec=dbtab.CreateRecord(ftPolyLineFeature) obj=rec.Feature sty=obj.Style //set object style sty.LineWidth=3 sty.LineColor=255*256*256 obj.Style=sty obj.AddPart(1) obj.AddNode(0,ntrack+inc) rpoi=Server.CreateObject("wmobj.RealPoint") if (inc>0) { rpoi.x=x0 rpoi.y=y0 obj.Nodes(0,0)=rpoi } for (j=1; j<ntrack+1; j++) //for (j=1; j<ntrack; j++) { x=parseFloat(Request.QueryString("trx0")(j)) y=parseFloat(Request.QueryString("try0")(j)) rpoi.x=x rpoi.y=y obj.Nodes(0,j+inc-1)=rpoi } obj.Validate() rec.FieldValues(1)=parseInt(obj.Length) + "м" valruller="valrull="+parseInt(obj.Length)+";" rec.Insert() } } if (nearx>0 && neary>0) { lay=Map.Layers("tracks") dbtab=lay.Table rec=dbtab.CreateRecord(ftSymbolFeature) obj=rec.Feature sty=obj.Style //set object style sty.SymbolTTFontName="Wingdings" sty.SymbolTTShape=165 sty.SymbolTTSize=15 sty.SymbolTTColor=255 obj.Style=sty rpoi=Server.CreateObject("wmobj.RealPoint") rpoi.x=parseFloat(nearx) rpoi.y=parseFloat(neary) obj.Center=rpoi obj.Validate() rpoi=lay.MapToGeo(rpoi) rec.FieldValues(1)=parseInt(rpoi.x,4) + "° " + parseInt(rpoi.y,4) + "°" //rec.FieldValues(1)=Round(rpoi.x,4) + "° " + Round(rpoi.y,4) + "°" rec.Insert() } if (mask!="") { if (tbl!="uniq") { //get the search layer lay=Map.Layers(tbl) //here we will keep search fields names IdField="" NameField="" FindField="" //get layer meta data laymetadata=lay.MetaData //get the id, name and find fields (name is equ to find if no find types av-e) fldmetadata=laymetadata.GetFieldByType("id") if (!(fldmetadata == null)) { IdField=fldmetadata.FieldName } fldmetadata=laymetadata.GetFieldByType("name") if (!(fldmetadata == null)) { NameField=fldmetadata.FieldName } FindField=NameField fldmetadata=laymetadata.GetFieldByType("find") if (!(fldmetadata == null)) { FindField=fldmetadata.FieldName } //now we get db iterator cur=lay.Table.CreateCursor() s=mask ds=dmask if (s=="*") { s="" } if (ds=="*") { ds="" } //results output depend on layer (exceptions for buidings search) if (tbl!="Здания") { //adding like condition to it cur.AddLikeCondition(FindField,s,true,true) collect=cur.GetResults() //and then we sort the results by the name field collect.Sort(NameField) curLay="lay="+lay.Name+";" for (j=0; j<collect.Count; j++) { rec=collect.Records(j) s=rec.FieldValues(NameField) tt2=s+"" if (tt2=="") { s="Noname" } mass[j]=s //here we simply output the name-id pair resi=resi+"s"+j+"="+s+";" resj=resj+"id"+j+"="+rec.FieldValues(IdField)+";" } } else { //adding like condition to it cur.AddCondition("street1",s) //cur.AddLikeCondition(FindField,ds,true,true) cur.AddLikeCondition("house1",ds,true,true) collect=cur.GetResults() //and then we sort the results by the name field collect.Sort(NameField) curLay="lay="+lay.Name+";" //and here comes magic (I think black one) for (j=0; j<collect.Count; j++) { rec=collect.Records(j) id=rec.FieldValues(FindField) s=rec.FieldValues("street1")+" д. "+rec.FieldValues("house1") tt2=s+"" if (tt2=="") { s="Noname" } mass[j]=s //here we output only name resi=resi+"s"+j+"="+s+";" resj=resj+"id"+j+"="+id+";" } } scount = collect.Count countij="count="+collect.Count+";" } else { DBServer=Server.CreateObject("wmobj.DatabaseServer") dbase=DBServer.OpenDatabase("C:\\MapRoot\\Maps\\first_db_maps\\first_db.rdb") dbTable=dbase.Tables("uniq_str") cur=dbTable.CreateCursor() s=mask if (s=="*") { s="" } cur.AddLikeCondition("street1",s,true,true) collect=cur.GetResults() collect.Sort("street1") curLay="lay=Здания;" for (j=0; j<collect.Count; j++) { rec=collect.Records(j) s=rec.FieldValues("street1") tt2=s+"" if (tt2=="") { s="Noname" } resi=resi+"s"+j+"="+s+";" //resj=resj+"id"+j+"="+rec.FieldValues("street1")+";" } scount = collect.Count countij="count="+collect.Count+";" } } Map.DrawScale=true simg=misc.UniqueFileName(locpth + "\\tmp","gif") //simg="karta.gif" Map.SaveToFile(locpth + "\\tmp\\" + simg,0) misc.CheckTmp(locpth + "\\tmp\\*.gif",10) tmp_mapw = Map.Width tmp_maph = Map.Height tmp_cx = Map.CenterX tmp_cy = Map.CenterY tmp_zoom = Map.Zoom Map.Width = 260 Map.Height = 320 Map.CenterX = 1500 Map.CenterY = -160 Map.Zoom = 33000 mpoi1=Server.CreateObject("wmobj.RealPoint") mpoi1.x = tmp_cx mpoi1.y = tmp_cy tpoint1 = Map.MapToScreen(mpoi1) cxMini = tpoint1.x cyMini = tpoint1.y Map.Width = tmp_mapw Map.Height = tmp_maph Map.CenterX = tmp_cx Map.CenterY = tmp_cy Map.Zoom = tmp_zoom if(scount < 100) Response.Write('img='+simg+';cx='+Map.CenterX+';cy='+Map.CenterY+';cxm='+cxMini+';cym='+cyMini+';zoom='+Map.Zoom+';'+strackurl+valruller+countij+resi+resj+curLay) else Response.Write('img='+simg+';cx='+Map.CenterX+';cy='+Map.CenterY+';cxm='+cxMini+';cym='+cyMini+';zoom='+Map.Zoom+';'+strackurl+valruller+countij+curLay) Response.Charset="windows-1251" //<?xml version="1.0" encoding="UTF-8" standalone="yes"> //<response> //<method>checkName</method> //<result>=simg</result> //</response> %> |
|
|
Webmaster_hb |
14.1.2009, 15:40;
Ответить: Webmaster_hb
Сообщение
#4
|
|
у вас используется серверный Javascript, а для решения вашей проблемы, искать глазами по исходниками не выход
данные раздел форума посвящен клиентскому Javascript который выполняется браузерами |
|
|
Persik_hb |
21.1.2009, 14:29;
Ответить: Persik_hb
Сообщение
#5
|
|
А кто разбирает код ASP? Помоги мне, пожалуйста!!! У меня никак не получается!!
|
|
|
Diablo_hb |
21.1.2009, 14:45;
Ответить: Diablo_hb
Сообщение
#6
|
|
|
Persik, вы в нормальный раздел пишите пост и не общими словами помогите спасите и тд - а конкретый вопрос
а то получите такойже ответ - напрягитесь и получится
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Иностранная банковская карта + Яндекс.Директ без НДС Сделаем Вам пластиковую платежную карту и счет иностранного Банка |
5 | Aloof | 690 | 17.2.2023, 5:24 автор: Skyworker |
|
Продаються аккаунты FB ,ак больше года привязана карта VISA.Для рекламы* | 0 | cuponyand | 1786 | 20.1.2016, 14:03 автор: -cupon2016- |
|
Нужна клубная/дисконтная карта дизайн |
6 | tube | 2402 | 1.12.2014, 12:54 автор: JaMaster |
|
Карта ссылок и скрипты. | 2 | motkin7899 | 2922 | 23.4.2014, 19:17 автор: -Galen- |
|
Карта РФ | 3 | fisherokspb | 5525 | 25.3.2013, 9:35 автор: -fisherokspb- |
Текстовая версия | Сейчас: 28.3.2024, 15:25 |