1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 1 <!DOCTYPE HTML>
2 <html> 2 <html lang="ja">
3 <head> 3 <head>
4 4 <meta charset="UTF-8">
5 <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> 5 <script src="https://api.its-mo.com/v3/loader?key=JSZddc5111626c8|Zo4wz&api=zdcmap.js,control.js,search.js,shape.js&enc=UTF8&force=1" type="text/javascript"></script>
6 <script src="http://api.its-mo.com/cgi/loader.cgi?key=JSZ752c40ded32d&ver=2.0&api=zdcmap.js,search.js,shape.js&enc=EUC&force=1" type="text/javascript"></script>
7 <script type="text/javascript"> 6 <script type="text/javascript">
8 //<![CDATA[ 7
9     var map, from, to, msg_info, 8     var map, from, to, msg_info,
10         lat = 35.6778614, lon = 139.7703167, imgdir ='../../image/search/'; 9         lat = 35.6778614, lon = 139.7703167, imgdir ='../../image/search/';
11     var guide_type = { 10     var guide_type = {
12         'start': { 11         'start': {
13             custom: { 12             custom: {
14                 base: { 13                 base: {
15                     src: imgdir + 'route_bg.png', 14                     src: imgdir + 'route_bg.png',
16                     imgSize: new ZDC.WH(35, 35), 15                     imgSize: new ZDC.WH(35, 35),
17                     imgTL: new ZDC.TL(0, 0) 16                     imgTL: new ZDC.TL(0, 0)
18                 }, 17                 },
19                 content: { 18                 content: {
20                     src: imgdir + 'route_cat.png', 19                     src: imgdir + 'route_cat.png',
21                     imgSize: new ZDC.WH(35, 35), 20                     imgSize: new ZDC.WH(35, 35),
22                     imgTL: new ZDC.TL(0, 0) 21                     imgTL: new ZDC.TL(0, 0)
23                 } 22                 }
24             }, 23             },
25             offset: ZDC.Pixel(-5, -30) 24             offset: ZDC.Pixel(-5, -30)
26         }, 25         },
27         'end': { 26         'end': {
28             custom: { 27             custom: {
29                 base: { 28                 base: {
30                     src: imgdir + 'route_bg.png', 29                     src: imgdir + 'route_bg.png',
31                     imgSize: new ZDC.WH(35, 35), 30                     imgSize: new ZDC.WH(35, 35),
32                     imgTL: new ZDC.TL(38, 0) 31                     imgTL: new ZDC.TL(38, 0)
33                 }, 32                 },
34                 content: { 33                 content: {
35                     src: imgdir + 'route_cat.png', 34                     src: imgdir + 'route_cat.png',
36                     imgSize: new ZDC.WH(35, 35), 35                     imgSize: new ZDC.WH(35, 35),
37                     imgTL: new ZDC.TL(35, 0) 36                     imgTL: new ZDC.TL(35, 0)
38                 } 37                 }
39             }, 38             },
40             offset: ZDC.Pixel(-5, -30) 39             offset: ZDC.Pixel(-5, -30)
41         } 40         }
42     }; 41     };
43 42
44     var line_property = { 43     var line_property = {
45         '高速道路': {strokeColor: '#3000ff', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 44         '高速道路': {strokeColor: '#3000ff', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
46         '都市高速道路': {strokeColor: '#008E00', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 45         '都市高速道路': {strokeColor: '#008E00', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
47         '国道': {strokeColor: '#007777', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 46         '国道': {strokeColor: '#007777', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
48         '主要地方道': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 47         '主要地方道': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
49         '都道府県道': {strokeColor: '#008800', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 48         '都道府県道': {strokeColor: '#008800', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
50         '一般道路(幹線)': {strokeColor: '#000088', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 49         '一般道路(幹線)': {strokeColor: '#000088', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
51         '一般道路(その他)': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 50         '一般道路(その他)': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
52         '導入路': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 51         '導入路': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
53         '細街路(主要)': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}, 52         '細街路(主要)': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'},
54         'フェリー航路': {}, 53         'フェリー航路': {},
55         '道路外': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'} 54         '道路外': {strokeColor: '#880000', strokeWeight: 5, lineOpacity: 0.5, lineStyle: 'solid'}
56     }; 55     };
57 56
58     function loadMap(){ 57     function loadMap(){
59         var ll = new ZDC.LatLon(lat, lon); 58         var ll = new ZDC.LatLon(lat, lon);
60         map = new ZDC.Map(document.getElementById('ZMap'),{ 59         map = new ZDC.Map(document.getElementById('ZMap'),{
61             latlon: ll, 60             latlon: ll,
62             zoom: 5 61             zoom: 5
63         }); 62         });
64 63
65         msg_info = new ZDC.MsgInfo(ll, {offset: ZDC.Pixel(0, -18)}); 64         msg_info = new ZDC.MsgInfo(ll, {offset: ZDC.Pixel(0, -18)});
66         map.addWidget(msg_info); 65         map.addWidget(msg_info);
66
67         map.addWidget(new ZDC.ScaleBar());
68         map.addWidget(new ZDC.Control());
67     }; 69     };
68 70
69     function exec(){ 71     function exec(){
70         /* スタート地点の緯度経度 */ 72         /* スタート地点の緯度経度 */
71         from = new ZDC.LatLon(35.6806275, 139.8015336); 73         from = new ZDC.LatLon(35.6806275, 139.8015336);
72         /* ゴール地点の緯度経度 */ 74         /* ゴール地点の緯度経度 */
73         to = new ZDC.LatLon(35.6659792, 139.74036); 75         to = new ZDC.LatLon(35.6659792, 139.74036);
74 76
75         /* 自動車ルート探索を実行 */ 77         /* 自動車ルート探索を実行 */
76         ZDC.Search.getRouteByDrive({ 78         ZDC.Search.getByZmaps('route3/drive',{
77             from: from, 79             from: from.lat + ',' + from.lon,
78             to: to 80             to: to.lat + ',' + to.lon,
81             searchType: 0
79         },function(status, res) { 82         },function(status, res) {
80             if (status.code == '000') { 83             if (status.code == '200') {
81                 /* 取得成功 */ 84                 /* 取得成功 */
82                 writeRoute(res); 85                 writeRoute(res);
83             } else { 86             } else {
84                 /* 取得失敗 */ 87                 /* 取得失敗 */
85                 alert(status.text); 88                 alert(status.text);
86             } 89             }
87         }); 90         });
88     }; 91     };
89 92
90     function writeRoute(res) { 93     function writeRoute(res) {
94         if (res.route === null) {
95             alert('ルートが見つかりません');
96         }
91 97
92         /* スタートとゴールのアイコンを地図に重畳します */ 98         /* スタートとゴールのアイコンを地図に重畳します */
93         var start = new ZDC.Marker(from,guide_type['start']); 99         var start = new ZDC.Marker(from,guide_type['start']);
94         var end = new ZDC.Marker(to,guide_type['end']); 100         var end = new ZDC.Marker(to,guide_type['end']);
95 101
96         /* 102         /*
97          スタートとゴールのウィジットが他のマーカの 103          スタートとゴールのウィジットが他のマーカの
98          下にならないようにz-indexを設定します 104          下にならないようにz-indexを設定します
99         */ 105         */
100         start.setZindex(110); 106         start.setZindex(110);
101         end.setZindex(110); 107         end.setZindex(110);
102 108
103         map.addWidget(start); 109         map.addWidget(start);
104         map.addWidget(end); 110         map.addWidget(end);
105 111
106         var link = res.route.link; 112         var link = res.route.link;
107 113
108         var latlons = []; 114         var latlons = [];
109 115
110         for (var i=0, j=link.length; i<j; i++) { 116         for (var i=0, j=link.length; i<j; i++) {
111 117
112             var opt = line_property[link[i].roadType]; 118             var opt = line_property[link[i].roadType];
113             var pllatlons =[]; 119             var pllatlons =[];
114 120
115             for (var k=0, l=link[i].line.length; k<l; k++) { 121             for (var k=0, l=link[i].line.latlon.length; k<l; k+=2) {
116                 pllatlons.push(link[i].line[k]); 122                 pllatlons.push(new ZDC.LatLon(link[i].line.latlon[k],link[i].line.latlon[k+1]));
117 123
118                 latlons[i] = link[i].line[0]; 124                 /* getAdjustZoom用に全地点の緯度経度を取得 */
119 125                 latlons.push(new ZDC.LatLon(link[i].line.latlon[k],link[i].line.latlon[k+1]));
120                 if(i == j-1 && k == 1) {
121                     latlons[i+1] = link[i].line[1];
122                 }
123 126
124             } 127             }
125             var pl = new ZDC.Polyline(pllatlons, opt); 128             var pl = new ZDC.Polyline(pllatlons, opt);
126             map.addWidget(pl); 129             map.addWidget(pl);
127 130
128             if (link[i].guidance != null) { 131             if (link[i].guidance != null) {
129                 var guide = link[i].guidance.guideType; 132                 /* 誘導画像情報があればマーカーを作成 */
130 133                 if (link[i].guidance.imageurl.length != 0) {
131                 /* 交差点 || 方面及び方向 || ETC */ 134                     var mk = new ZDC.Marker(new ZDC.LatLon(link[i].line.latlon[0],link[i].line.latlon[1]));
132                 var url = link[i].guidance.crossImageUri ||
133                 link[i].guidance.signboardImageUri ||
134                 link[i].guidance.etcImageUri;
135                 if (url) {
136                     var mk = new ZDC.Marker(link[i].line[0]);
137                     map.addWidget(mk); 135                     map.addWidget(mk);
138 136
139                     /* マーカをクリックしたときの動作 */ 137                     /* マーカをクリックしたときの動作 */
140                     ZDC.bind(mk, ZDC.MARKER_CLICK, {link: link[i]}, markerClick); 138                     ZDC.bind(mk, ZDC.MARKER_CLICK, {link: link[i]}, markerClick);
141                 } 139                 }
142             } 140             }
143         } 141         }
144         /* 地点が全て表示できる縮尺レベルを取得 */ 142         /* 地点が全て表示できる縮尺レベルを取得 */
145         var adjust = map.getAdjustZoom(latlons); 143         var adjust = map.getAdjustZoom(latlons);
146         map.moveLatLon(adjust.latlon); 144         map.moveLatLon(adjust.latlon);
147         map.setZoom(adjust.zoom); 145         map.setZoom(adjust.zoom);
148     }; 146     };
149 147
150     function markerClick() { 148     function markerClick() {
151 149
152         var url = this.link.guidance.crossImageUri || 150         var url = this.link.guidance.imageurl[0].url;
153         this.link.guidance.signboardImageUri ||
154         this.link.guidance.etcImageUri;
155 151
156         var road_name = this.link.guidance.roadName || 'なし'; 152         var road_name = this.link.guidance.routeName || 'なし';
157         var cross_name = this.link.guidance.crossName || 'なし'; 153         var cross_name = this.link.guidance.pointName || 'なし';
158 154
159         var html = '<div style = "width:200px; height:150px; overflow-y:scroll;">'; 155         var html = '<div style = "width:200px; height:170px; overflow-y:scroll;">';
160             html += '<img src=' + url + '></src>'; 156             html += '<img src="' + url + '" width="100%"></src>';
161             html += '<table border="1" style="width:180px;">'; 157             html += '<table border="1" style="width:180px;">';
162             html += '<tr>'; 158             html += '<tr>';
163             html += '<td width="35%" style="font-size:10pt;">道路名</td>'; 159             html += '<td width="35%" style="font-size:10pt;">道路名</td>';
164             html += '<td style="font-size:10pt;">'+ road_name +'</td>'; 160             html += '<td style="font-size:10pt;">'+ road_name +'</td>';
165             html += '</tr>'; 161             html += '</tr>';
166             html += '<tr>'; 162             html += '<tr>';
167             html += '<td style="font-size:10pt;">交差点名</td>'; 163             html += '<td style="font-size:10pt;">交差点名</td>';
168             html += '<td style="font-size:10pt;">'+ cross_name +'</td>'; 164             html += '<td style="font-size:10pt;">'+ cross_name +'</td>';
169             html += '</tr></table></div>'; 165             html += '</tr></table></div>';
170 166
171         msg_info.setHtml(html); 167         msg_info.setHtml(html);
172         msg_info.moveLatLon(new ZDC.LatLon(this.link.line[0].lat, this.link.line[0].lon)); 168         msg_info.moveLatLon(new ZDC.LatLon(this.link.line.latlon[0], this.link.line.latlon[1]));
173         msg_info.open(); 169         msg_info.open();
174     }; 170     };
175 171
176 //]]>
177 </script> 172 </script>
178 </head> 173 </head>
179
180 <body onload="loadMap();"> 174 <body onload="loadMap();">
181     <div id="ZMap" style="border:1px solid #777777; width:500px; height:300px; top:0px; left:20px; position:absolute;"></div> 175     <div id="ZMap" style="border:1px solid #777777; width:600px; height:500px; top:0px; left:20px; position:absolute;"></div>
182     <div id="IBox" style="top:0px; left:540px; position:absolute;"> 176     <div id="IBox" style="top:0px; left:650px; position:absolute;">
183         <input type="button" value="自動車ルート検索" onclick="exec();"> 177         <input type="button" value="自動車ルート検索" onclick="exec();">
184     </div> 178     </div>
185 </body> 179 </body>