请把该函数覆盖toolbar.asp中的 function toolbarhandler(byref dbldistancein, byref dblmapzoomout) on error resume next dim stritemlayer dim objinfoitems dim brc dim dblmapx1, dblmapy1 dim dblmapx2, dblmapy2 dim dblmapdistance dim fnewzoom dim dblnewzoom, dblcenterx, dblcentery '加入必要的变量 dblmapdistance = 0 'initialize for display ' determine how the page was submitted. if ((strcomp(request.form(cmapx_mouseup), "0", vbtextcompare) = 0) and _ (strcomp(request.form(cmapy_mouseup), "0", vbtextcompare) = 0)) then 'upper left corner of map image was selected on submit. exit function end if if (request.form(cmapx_mouseup).count = 1) and (request.form(cmapy_mouseup).count = 1) then 'the map was clicked. if (strcomp(request.form(csttomaptool), csttomaptoolquerydata, vbtextcompare) = 0) then 'the form was submitted using the info tool. set objinfoitems = infopoint(request.form(cmapx_mouseup), _ request.form(cmapy_mouseup), stritemlayer) 'create an html page to display point-information createinfohtml objinfoitems, stritemlayer elseif (strcomp(request.form(csttomaptool), csttomaptoolgetdist, vbtextcompare) = 0) then 'the form was submitted using the distance tool. 'get earth coords of the first point brc = convertscreencoordstomap(request.form(cmapx_mousedown), request.form(cmapy_mousedown), _ dblmapx1, dblmapy1) 'get earth coords of the second point brc = convertscreencoordstomap(request.form(cmapx_mouseup), request.form(cmapy_mouseup), _ dblmapx2, dblmapy2) brc = calcmapdistance(dblmapx1, dblmapy1, dblmapx2, dblmapy2, dblmapdistance) dbldistancein = round(dblmapdistance,3) else if request.form(csttomaptool) = csttomaptoolzoomin then if request.form(cmapx_mouseup)=request.form(cmapx_mousedown) then adjustmap czoomintool, request.form(cmapx_mouseup), request.form(cmapy_mouseup)'原有示例代码 else brc = convertscreencoordstomap(request.form(cmapx_mousedown), request.form(cmapy_mousedown), dblmapx1, dblmapy1) brc = convertscreencoordstomap(request.form(cmapx_mouseup), request.form(cmapy_mouseup), dblmapx2, dblmapy2) brc = calcmapdistance(dblmapx1, 0, dblmapx2, 0, dblmapdistance) dblnewzoom = round(dblmapdistance,3) dblcenterx = dblmapx1 + (dblmapx2 - dblmapx1)/2 dblcentery = dblmapy2 + (dblmapy1 - dblmapy2)/2 brc = setmapcenterandzoomto(dblcenterx, dblcentery, dblnewzoom) end if '''''''''''''''''''''''''拉框放大成功 elseif request.form(csttomaptool) = csttomaptoolzoomout then if request.form(cmapx_mouseup)=request.form(cmapx_mousedown) then adjustmap czoomouttool, request.form(cmapx_mouseup), request.form(cmapy_mouseup)'屏蔽掉原来的点缩小模式 else brc = convertscreencoordstomap(request.form(cmapx_mousedown), request.form(cmapy_mousedown), dblmapx1, dblmapy1) brc= convertscreencoordstomap(request.form(cmapx_mouseup), request.form(cmapy_mouseup), dblmapx2, dblmapy2) brc = calcmapdistance(dblmapx1, 0, dblmapx2, 0, dblmapdistance) dblnewzoom = round(dblmapdistance,3) brc = getmapzoom(fnewzoom) '当选择缩小时的放大大小 dblnewzoom=fnewzoom*fnewzoom/dblnewzoom dblcenterx = dblmapx1 + (dblmapx2 - dblmapx1)/2 dblcentery = dblmapy2 + (dblmapy1 - dblmapy2)/2 brc = setmapcenterandzoomto(dblcenterx, dblcentery, dblnewzoom) end if ''''''''''''''''''''''''''''''''''''''''''''''''''''''加入新代码 else if request.form(cmapx_mouseup)=request.form(cmapx_mousedown) then adjustmap crecentertool, request.form(cmapx_mouseup), request.form(cmapy_mouseup)'此为漫游 else brc = convertscreencoordstomap(request.form(cmapx_mousedown), request.form(cmapy_mousedown), dblmapx1, dblmapy1) brc= convertscreencoordstomap(request.form(cmapx_mouseup), request.form(cmapy_mouseup), dblmapx2, dblmapy2) brc = calcmapdistance(dblmapx1, 0, dblmapx2, 0, dblmapdistance) dblcenterx = dblmapx1 + (dblmapx2 - dblmapx1)/2 dblcentery = dblmapy2 + (dblmapy1 - dblmapy2)/2 brc = setmapcenter(dblcenterx, dblcentery) end if end if end if 'write the map zoom regardless of whether point-info, distance, zoomin, zoom-out, 'or recenter tool was used to submit the map. brc = getmapzoom(dblmapzoomout) else ' form not submitted using the standard toolbar, do nothing. end if if err then toolbarhandler = false if not haveerror() then seterror "toolbarhandler", err.number, err.description end if else toolbarhandler = true end if end function 几经调试,完全成功,不过需要前面那位大侠的javacript的拉框显示操作才能完美无缝! |