【调度系统】广东民航医疗快线调度系统源代码
wanglizhong
2025-05-05 2a11acffdd3df927be6abace9e8155e370b49681
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
<input name="ServiceOrdID" type="hidden" value="<%=ServiceOrdID%>">
<input name="hidden_street" id="hidden_street" type="hidden" value="<%=ServiceOrdTraStreet%>">
<input name="hidden_end" id="hidden_end" type="hidden" value="<%=ServiceOrdTraEnd%>">
<div style="margin: 5px;font-size: 15px;">默认地址:<a onclick="frm_street_JS('民航广州医院')">民航广州医院</a></div>
<div width="300px">路线由:<input type="text" id="frm_street" size="20" value="" style="width:300px;" /> 至<i id="frm_transfer" style="font-style: normal;"></i><input type="text" id="frm_end" size="20" value="" style="width:300px;" /><input type="button" class="dialogJbtn first-child" onclick="frm_end_JS()" value="确定"> 
<!--<input type="button" value="查找" id="submit" onClick="getAddress()"/>-->
</div>
 
<div id="result" style=" width:400px; float:left"></div>
<div style="width:800px;height:600px;border:1px solid gray; float:right" id="container"></div>
</body>
 
<script type="text/javascript">
 
var search="frm_street";  //定义查询框ID;
var search1="frm_end";  //定义查询框ID;
var local="广州市";        // 定义本地地址;
var lng="104.290493"; //经度
var lat="30.981528"; //纬度
 
var ret = "";
var ret1 = "";
 
var newmarker;
var map = new BMap.Map("container");  //创建地图实例
var spoi  = new BMap.Point(lng,lat); //经纬度
var point = new BMap.Point(lng,lat); //创建点坐标
map.centerAndZoom(point,15);          //初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom();        //启用滚轮放大缩小地图
 
//add_flag0();                          
//=================获取元素==========================\\
function G(id) {
    return document.getElementById(id);
}
function GV(id){
    return document.getElementById(id).value;
}
 
//=================默认出发地==========================\\
  function frm_street_JS(ServiceOrdTraStreet){
     document.getElementById('frm_street').value=ServiceOrdTraStreet;
     document.getElementById("hidden_street").value=ServiceOrdTraStreet;
     getAddress();
}
 
//=================确定行程地址==========================\\
  function frm_end_JS(ServiceOrdTraStreet){
     var hidden_street=document.getElementById("hidden_street").value;
     var frm_street=document.getElementById("frm_street").value;
     var hidden_end=document.getElementById("hidden_end").value;
     var frm_end=document.getElementById("frm_end").value;
     ServiceOrdPtOutHosp=document.getElementById("ServiceOrdPtOutHosp").value
     if (hidden_street!=frm_street || hidden_end!=frm_end)
     {
        map.clearOverlays();
        JS_BaiduCalCreateEmpty();
         getAddress();
         setTimeout("get_point_end('"+frm_end+"')",500);
         document.getElementById("hidden_street").value=frm_street;
         document.getElementById("hidden_end").value=frm_end;
     }
     JS_BaiduCalCreateClose();
}
 
 
 
//=================添加标记==========================\\
  //添加标记
  function add_flag0(){
  var localmarker=new BMap.Marker(new BMap.Point(lng,lat));  
    map.addOverlay(localmarker); 
  }
 
  //添加目的地标记
  function add_flag1(point){
    map.centerAndZoom(point, 15);
    map.clearOverlays();    //清除地图上所有覆盖物
    add_flag0();            //添加标记
    newmarker=new BMap.Marker(new BMap.Point(point.lng,point.lat));  
    map.addOverlay(newmarker); 
        newmarker.enableDragging();//开启拖动
        spoi = point;
        ServiceOrdPtOutHosp=document.getElementById("ServiceOrdPtOutHosp").value
        
        if (ServiceOrdPtOutHosp)
        {
            spoi=ServiceOrdPtOutHosp;
            driveline(point,spoi);
            longAndtime(point,spoi,0);
        }
    
  // document.edit.lng.value=point.lng;
//   document.edit.lat.value=point.lat;
}
 
 
  function add_flag2(point){
 
    map.centerAndZoom(point, 15);
    //map.clearOverlays();    //清除地图上所有覆盖物
    add_flag0();            //添加标记
    newmarker=new BMap.Marker(new BMap.Point(point.lng,point.lat));  
    map.addOverlay(newmarker); 
        newmarker.enableDragging();//开启拖动
    driveline(spoi,point);
   
   ServiceOrdPtOutHosp=document.getElementById("ServiceOrdPtOutHosp").value
        if (ServiceOrdPtOutHosp)
        {longAndtime(spoi,point,1);}
        else
        {longAndtime(spoi,point,0);}
 
  // document.edit.lng.value=point.lng;
  // document.edit.lat.value=point.lat;
 
  }
//=================从输入框获取地址地址==============\\
function getAddress(){
get_point(GV(search));
}
 
//=================地址解析(根据地址获取坐标点)==========================\\
 
   function get_point(address){
    var myGeo = new BMap.Geocoder(); // 创建地址解析器实例
    myGeo.getPoint(address, function(point){
    if (point) {                    //如果地址能解析,标记
         //printObject(point);    //输出内容
         add_flag1(point);
               }else{
            alert("地址无法找到!");
                    }
                    },local);
    }
 
   function get_point_end(address){
    var myGeo = new BMap.Geocoder(); // 创建地址解析器实例
    myGeo.getPoint(address, function(point){
    if (point) {                    //如果地址能解析,标记
         //printObject(point);    //输出内容
         add_flag2(point);
               }else{
            alert("地址无法找到!!");
                    }
                    },local);
    }
 
 
 
//=================地址反解析(根据坐标点获取地址)==========================\\
 function get_address(e){
 var gc = new BMap.Geocoder();   // 创建地址反解析器实例
 var pt = e.point;
 var result;
    add_flag1(pt);
    gc.getLocation(pt, function(rs){
        var addComp = rs.addressComponents;
        if (addComp.street + addComp.streetNumber=="")
        {
          result="地址无法找到!";
          
        }
        else{ 
        result=addComp.street + addComp.streetNumber;
        }
         document.edit.frm_street.value=result;
         return result;
     
    });    
    
 }
 
 
//==============自动下拉列表=========================\\
 
var ac = new BMap.Autocomplete( {"input" : search,"location" : local} );    //建立一个自动完成的对象
ac.addEventListener("onconfirm", function(e) {    //鼠标点击下拉列表后的事件  
var _value = e.item.value;
myValue = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
setPlace();
});
function setPlace(){
  //  map.clearOverlays();    //清除地图上所有覆盖物
    function myFun(){
        var pp = ls.getResults().getPoi(0).point;    //获取第一个智能搜索的结果
        add_flag1(pp);
    }
    var ls = new BMap.LocalSearch(local, { //智能搜索
      onSearchComplete: myFun
    });
    ls.search(myValue);
    document.getElementById("hidden_street").value=myValue;
 
}
 
var ac1 = new BMap.Autocomplete( {"input" : search1,"location" : local} );    //建立一个自动完成的对象
ac1.addEventListener("onconfirm", function(e) {    //鼠标点击下拉列表后的事件  
var _value = e.item.value;
myValue = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
setPlace1();
});
 
function setPlace1(){
    map.clearOverlays();    //清除地图上所有覆盖物
    JS_BaiduCalCreateEmpty();
    getAddress();
    function myFun(){
        var pp = ls.getResults().getPoi(0).point;    //获取第一个智能搜索的结果
        add_flag2(pp);
    }
    var ls = new BMap.LocalSearch(local, { //智能搜索
      onSearchComplete: myFun
    });
    ls.search(myValue);
    document.getElementById("hidden_end").value=myValue;
}
 
 
//=================搜索线路==========================\\
 
function driveline(myP1,myP2){
 var driving = new BMap.DrivingRoute(map);    //创建驾车实例   
 driving.search(myP1, myP2);                 //第一个驾车搜索   
 driving.setSearchCompleteCallback(function(){       
 var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组      
 var polyline = new BMap.Polyline(pts);          
 map.addOverlay(polyline);               
 
               
 var lab1 = new BMap.Label("起点",{position:myP1});       //创建2个label      
 var lab2 = new BMap.Label("终点",{position:myP2});          
 map.addOverlay(lab1);       
 map.addOverlay(lab2);                  
 setTimeout(function(){           
 map.setViewport([myP1,myP2]);          //调整到最佳视野     
 },1000);           
 });}
 
 
 
 
     //=================驾车时间距离==============\\
function longAndtime(spoi,point,transfer){
    var output="";
    var searchComplete = function (results){
    if (transit.getStatus() != BMAP_STATUS_SUCCESS){ return ;}
         var plan = results.getPlan(0);
         //printObject(results.Lu.point);
         ret = plan.getDistance(true);
         ret1 = plan.getDuration(true);
         swlng=results.sw.point.lng
         swlat=results.sw.point.lat
         Lulng=results.Lu.point.lng
         Lulat=results.Lu.point.lat
        //output += plan.getDuration(true) + "\n";                //获取时间
        //output += "总路程为:" ;
        //output += plan.getDistance(true) + "\n";             //获取距离
        //alert(output);
 
        //填写入表单
        JS_BaiduCalCreateSave(swlng+ ','+swlat,Lulng+ ','+Lulat,ret1,ret,transfer);
        
 
    }
    
var transit = new BMap.DrivingRoute(map, {renderOptions: {map: map,panel:"result"},
   onSearchComplete: searchComplete,
   onPolylinesSet: function() {
       setTimeout(function() { }, "1000");
   }
   });
transit.search(spoi, point);
  }
 
/*
 
//=================单击地图监听事件==========================\\
map.addEventListener("click", function(e){ 
 get_address(e);
 // alert(get_address(e));
 
});
 
//=================移动地图监听事件==========================\\
newmarker.addEventListener("dragend", function(e){ 
 
});
*/
 
//=================三地途经事件==========================\\
//var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}});
//driving.search("民航广州医院", "珠江医院",{waypoints:["广州省中医院"]});//waypoints表示途经点
 
 
//=================输出测试数组==========================\\
function printObject(obj){ 
//obj = {"cid":"C0","ctext":"区县"}; 
var temp = ""; 
for(var i in obj){//用javascript的for/in循环遍历对象的属性 
temp += i+":"+obj[i]+"\n\n"; 
alert(temp);//结果:cid:C0 \n ctext:区县 
 
function GetDis()
{
   return ret;
}
 
function GetDis1()
{
   return ret1;
}
 
function GetStart() {
    //setTimeout(function(){},"1000");
    return GV(search);
}
 
function GetEnd() {
    //setTimeout(function(){},"1000");
    return GV(search1);
}
 
//显示[object Object]
function allPrpos(obj) { 
    // 用来保存所有的属性名称和值
    var props = "";
    // 开始遍历
    for(var p in obj){ 
        // 方法
        if(typeof(obj[p])=="function"){ 
            //obj[p]();
        }else{ 
            // p 为属性名称,obj[p]为对应属性的值
            props += p + "=" + obj[p] + ";  ";
        } 
    } 
    // 最后显示所有的属性
    alert(props);
}
 
</script>