正在显示
4 个修改的文件
包含
1210 行增加
和
95 行删除
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <project version="4"> | 2 | <project version="4"> |
3 | + <component name="BookmarkManager"> | ||
4 | + <bookmark url="file://$PROJECT_DIR$/application/home/view/member/my_information.html" line="116" mnemonic="4" /> | ||
5 | + </component> | ||
3 | <component name="ChangeListManager"> | 6 | <component name="ChangeListManager"> |
4 | <list default="true" id="309ad746-5b2a-4c29-af46-e7925a35765c" name="默认的" comment=""> | 7 | <list default="true" id="309ad746-5b2a-4c29-af46-e7925a35765c" name="默认的" comment=""> |
8 | + <change afterPath="$PROJECT_DIR$/public/assets/advertising/js/qqmap-wx-jssdk.js" afterDir="false" /> | ||
5 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> | 9 | <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |
6 | - <change beforePath="$PROJECT_DIR$/public/assets/advertising/css/personalMsg.css" beforeDir="false" afterPath="$PROJECT_DIR$/public/assets/advertising/css/personalMsg.css" afterDir="false" /> | 10 | + <change beforePath="$PROJECT_DIR$/application/home/controller/Member.php" beforeDir="false" afterPath="$PROJECT_DIR$/application/home/controller/Member.php" afterDir="false" /> |
11 | + <change beforePath="$PROJECT_DIR$/application/home/view/member/my_information.html" beforeDir="false" afterPath="$PROJECT_DIR$/application/home/view/member/my_information.html" afterDir="false" /> | ||
7 | </list> | 12 | </list> |
8 | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> | 13 | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> |
9 | <option name="TRACKING_ENABLED" value="true" /> | 14 | <option name="TRACKING_ENABLED" value="true" /> |
@@ -34,26 +39,17 @@ | @@ -34,26 +39,17 @@ | ||
34 | <file leaf-file-name="Member.php" pinned="false" current-in-tab="false"> | 39 | <file leaf-file-name="Member.php" pinned="false" current-in-tab="false"> |
35 | <entry file="file://$PROJECT_DIR$/application/home/controller/Member.php"> | 40 | <entry file="file://$PROJECT_DIR$/application/home/controller/Member.php"> |
36 | <provider selected="true" editor-type-id="text-editor"> | 41 | <provider selected="true" editor-type-id="text-editor"> |
37 | - <state relative-caret-position="561"> | ||
38 | - <caret line="64" column="32" lean-forward="true" selection-start-line="64" selection-start-column="32" selection-end-line="64" selection-end-column="32" /> | 42 | + <state relative-caret-position="745"> |
43 | + <caret line="341" column="70" selection-start-line="341" selection-start-column="70" selection-end-line="341" selection-end-column="70" /> | ||
39 | </state> | 44 | </state> |
40 | </provider> | 45 | </provider> |
41 | </entry> | 46 | </entry> |
42 | </file> | 47 | </file> |
43 | - <file leaf-file-name="my_information.html" pinned="false" current-in-tab="false"> | 48 | + <file leaf-file-name="my_information.html" pinned="false" current-in-tab="true"> |
44 | <entry file="file://$PROJECT_DIR$/application/home/view/member/my_information.html"> | 49 | <entry file="file://$PROJECT_DIR$/application/home/view/member/my_information.html"> |
45 | <provider selected="true" editor-type-id="text-editor"> | 50 | <provider selected="true" editor-type-id="text-editor"> |
46 | - <state relative-caret-position="493"> | ||
47 | - <caret line="29" column="102" selection-start-line="29" selection-start-column="102" selection-end-line="29" selection-end-column="102" /> | ||
48 | - </state> | ||
49 | - </provider> | ||
50 | - </entry> | ||
51 | - </file> | ||
52 | - <file leaf-file-name="personalMsg.css" pinned="false" current-in-tab="true"> | ||
53 | - <entry file="file://$PROJECT_DIR$/public/assets/advertising/css/personalMsg.css"> | ||
54 | - <provider selected="true" editor-type-id="text-editor"> | ||
55 | - <state relative-caret-position="356"> | ||
56 | - <caret line="25" column="23" selection-start-line="25" selection-start-column="23" selection-end-line="25" selection-end-column="23" /> | 51 | + <state relative-caret-position="793"> |
52 | + <caret line="145" column="41" selection-start-line="145" selection-start-column="41" selection-end-line="145" selection-end-column="41" /> | ||
57 | </state> | 53 | </state> |
58 | </provider> | 54 | </provider> |
59 | </entry> | 55 | </entry> |
@@ -93,8 +89,8 @@ | @@ -93,8 +89,8 @@ | ||
93 | <file leaf-file-name="index.html" pinned="false" current-in-tab="false"> | 89 | <file leaf-file-name="index.html" pinned="false" current-in-tab="false"> |
94 | <entry file="file://$PROJECT_DIR$/application/home/view/index/index.html"> | 90 | <entry file="file://$PROJECT_DIR$/application/home/view/index/index.html"> |
95 | <provider selected="true" editor-type-id="text-editor"> | 91 | <provider selected="true" editor-type-id="text-editor"> |
96 | - <state relative-caret-position="266"> | ||
97 | - <caret line="73" selection-start-line="73" selection-end-line="73" selection-end-column="28" /> | 92 | + <state relative-caret-position="181"> |
93 | + <caret line="74" column="67" selection-start-line="74" selection-start-column="67" selection-end-line="74" selection-end-column="67" /> | ||
98 | </state> | 94 | </state> |
99 | </provider> | 95 | </provider> |
100 | </entry> | 96 | </entry> |
@@ -110,7 +106,6 @@ | @@ -110,7 +106,6 @@ | ||
110 | </component> | 106 | </component> |
111 | <component name="FindInProjectRecents"> | 107 | <component name="FindInProjectRecents"> |
112 | <findStrings> | 108 | <findStrings> |
113 | - <find>btn_all</find> | ||
114 | <find>btn_msg</find> | 109 | <find>btn_msg</find> |
115 | <find>new_time</find> | 110 | <find>new_time</find> |
116 | <find>is_where_satisfy</find> | 111 | <find>is_where_satisfy</find> |
@@ -140,6 +135,7 @@ | @@ -140,6 +135,7 @@ | ||
140 | <find>b_active</find> | 135 | <find>b_active</find> |
141 | <find>quest_box</find> | 136 | <find>quest_box</find> |
142 | <find>.head_img</find> | 137 | <find>.head_img</find> |
138 | + <find>header_img</find> | ||
143 | </findStrings> | 139 | </findStrings> |
144 | <replaceStrings> | 140 | <replaceStrings> |
145 | <replace /> | 141 | <replace /> |
@@ -185,7 +181,6 @@ | @@ -185,7 +181,6 @@ | ||
185 | <option value="$PROJECT_DIR$/application/home/controller/User.php" /> | 181 | <option value="$PROJECT_DIR$/application/home/controller/User.php" /> |
186 | <option value="$PROJECT_DIR$/application/home/controller/Question.php" /> | 182 | <option value="$PROJECT_DIR$/application/home/controller/Question.php" /> |
187 | <option value="$PROJECT_DIR$/application/home/controller/Index.php" /> | 183 | <option value="$PROJECT_DIR$/application/home/controller/Index.php" /> |
188 | - <option value="$PROJECT_DIR$/application/home/view/index/index.html" /> | ||
189 | <option value="$PROJECT_DIR$/public/assets/advertising/css/public.css" /> | 184 | <option value="$PROJECT_DIR$/public/assets/advertising/css/public.css" /> |
190 | <option value="$PROJECT_DIR$/application/database.php" /> | 185 | <option value="$PROJECT_DIR$/application/database.php" /> |
191 | <option value="$PROJECT_DIR$/application/home/view/public/js.html" /> | 186 | <option value="$PROJECT_DIR$/application/home/view/public/js.html" /> |
@@ -199,9 +194,10 @@ | @@ -199,9 +194,10 @@ | ||
199 | <option value="$PROJECT_DIR$/application/home/controller/Merchant.php" /> | 194 | <option value="$PROJECT_DIR$/application/home/controller/Merchant.php" /> |
200 | <option value="$PROJECT_DIR$/application/home/view/goods/video_detail.html" /> | 195 | <option value="$PROJECT_DIR$/application/home/view/goods/video_detail.html" /> |
201 | <option value="$PROJECT_DIR$/application/home/view/member/index.html" /> | 196 | <option value="$PROJECT_DIR$/application/home/view/member/index.html" /> |
197 | + <option value="$PROJECT_DIR$/public/assets/advertising/css/personalMsg.css" /> | ||
202 | <option value="$PROJECT_DIR$/application/home/controller/Member.php" /> | 198 | <option value="$PROJECT_DIR$/application/home/controller/Member.php" /> |
199 | + <option value="$PROJECT_DIR$/application/home/view/index/index.html" /> | ||
203 | <option value="$PROJECT_DIR$/application/home/view/member/my_information.html" /> | 200 | <option value="$PROJECT_DIR$/application/home/view/member/my_information.html" /> |
204 | - <option value="$PROJECT_DIR$/public/assets/advertising/css/personalMsg.css" /> | ||
205 | </list> | 201 | </list> |
206 | </option> | 202 | </option> |
207 | </component> | 203 | </component> |
@@ -366,6 +362,14 @@ | @@ -366,6 +362,14 @@ | ||
366 | <item name="advertising" type="462c0819:PsiDirectoryNode" /> | 362 | <item name="advertising" type="462c0819:PsiDirectoryNode" /> |
367 | <item name="css" type="462c0819:PsiDirectoryNode" /> | 363 | <item name="css" type="462c0819:PsiDirectoryNode" /> |
368 | </path> | 364 | </path> |
365 | + <path> | ||
366 | + <item name="advertising" type="b2602c69:ProjectViewProjectNode" /> | ||
367 | + <item name="advertising" type="462c0819:PsiDirectoryNode" /> | ||
368 | + <item name="public" type="462c0819:PsiDirectoryNode" /> | ||
369 | + <item name="assets" type="462c0819:PsiDirectoryNode" /> | ||
370 | + <item name="advertising" type="462c0819:PsiDirectoryNode" /> | ||
371 | + <item name="js" type="462c0819:PsiDirectoryNode" /> | ||
372 | + </path> | ||
369 | </expand> | 373 | </expand> |
370 | <select /> | 374 | <select /> |
371 | </subPane> | 375 | </subPane> |
@@ -388,8 +392,8 @@ | @@ -388,8 +392,8 @@ | ||
388 | </component> | 392 | </component> |
389 | <component name="RecentsManager"> | 393 | <component name="RecentsManager"> |
390 | <key name="CopyFile.RECENT_KEYS"> | 394 | <key name="CopyFile.RECENT_KEYS"> |
391 | - <recent name="D:\wamp\www\advertising\application\home\view\member" /> | ||
392 | <recent name="D:\wamp\www\advertising\public\assets\advertising\js" /> | 395 | <recent name="D:\wamp\www\advertising\public\assets\advertising\js" /> |
396 | + <recent name="D:\wamp\www\advertising\application\home\view\member" /> | ||
393 | <recent name="D:\wamp\www\advertising\public\assets\advertising\css" /> | 397 | <recent name="D:\wamp\www\advertising\public\assets\advertising\css" /> |
394 | <recent name="D:\wamp\www\advertising\application\home\view\goods" /> | 398 | <recent name="D:\wamp\www\advertising\application\home\view\goods" /> |
395 | <recent name="D:\wamp\www\advertising\application\home\view\user" /> | 399 | <recent name="D:\wamp\www\advertising\application\home\view\user" /> |
@@ -439,28 +443,7 @@ | @@ -439,28 +443,7 @@ | ||
439 | <workItem from="1572568391799" duration="24440000" /> | 443 | <workItem from="1572568391799" duration="24440000" /> |
440 | <workItem from="1572668245063" duration="699000" /> | 444 | <workItem from="1572668245063" duration="699000" /> |
441 | <workItem from="1572827640492" duration="25475000" /> | 445 | <workItem from="1572827640492" duration="25475000" /> |
442 | - <workItem from="1572914713443" duration="20959000" /> | ||
443 | - </task> | ||
444 | - <task id="LOCAL-00152" summary="视频详情"> | ||
445 | - <created>1572923759714</created> | ||
446 | - <option name="number" value="00152" /> | ||
447 | - <option name="presentableId" value="LOCAL-00152" /> | ||
448 | - <option name="project" value="LOCAL" /> | ||
449 | - <updated>1572923759715</updated> | ||
450 | - </task> | ||
451 | - <task id="LOCAL-00153" summary="视频详情"> | ||
452 | - <created>1572923840872</created> | ||
453 | - <option name="number" value="00153" /> | ||
454 | - <option name="presentableId" value="LOCAL-00153" /> | ||
455 | - <option name="project" value="LOCAL" /> | ||
456 | - <updated>1572923840872</updated> | ||
457 | - </task> | ||
458 | - <task id="LOCAL-00154" summary="视频详情"> | ||
459 | - <created>1572923986177</created> | ||
460 | - <option name="number" value="00154" /> | ||
461 | - <option name="presentableId" value="LOCAL-00154" /> | ||
462 | - <option name="project" value="LOCAL" /> | ||
463 | - <updated>1572923986177</updated> | 446 | + <workItem from="1572914713443" duration="22644000" /> |
464 | </task> | 447 | </task> |
465 | <task id="LOCAL-00155" summary="视频详情"> | 448 | <task id="LOCAL-00155" summary="视频详情"> |
466 | <created>1572924115829</created> | 449 | <created>1572924115829</created> |
@@ -784,11 +767,32 @@ | @@ -784,11 +767,32 @@ | ||
784 | <option name="project" value="LOCAL" /> | 767 | <option name="project" value="LOCAL" /> |
785 | <updated>1572941029824</updated> | 768 | <updated>1572941029824</updated> |
786 | </task> | 769 | </task> |
787 | - <option name="localTasksCounter" value="201" /> | 770 | + <task id="LOCAL-00201" summary="音频"> |
771 | + <created>1572941081046</created> | ||
772 | + <option name="number" value="00201" /> | ||
773 | + <option name="presentableId" value="LOCAL-00201" /> | ||
774 | + <option name="project" value="LOCAL" /> | ||
775 | + <updated>1572941081046</updated> | ||
776 | + </task> | ||
777 | + <task id="LOCAL-00202" summary="音频"> | ||
778 | + <created>1572941292693</created> | ||
779 | + <option name="number" value="00202" /> | ||
780 | + <option name="presentableId" value="LOCAL-00202" /> | ||
781 | + <option name="project" value="LOCAL" /> | ||
782 | + <updated>1572941292693</updated> | ||
783 | + </task> | ||
784 | + <task id="LOCAL-00203" summary="音频"> | ||
785 | + <created>1572941505447</created> | ||
786 | + <option name="number" value="00203" /> | ||
787 | + <option name="presentableId" value="LOCAL-00203" /> | ||
788 | + <option name="project" value="LOCAL" /> | ||
789 | + <updated>1572941505448</updated> | ||
790 | + </task> | ||
791 | + <option name="localTasksCounter" value="204" /> | ||
788 | <servers /> | 792 | <servers /> |
789 | </component> | 793 | </component> |
790 | <component name="TimeTrackingManager"> | 794 | <component name="TimeTrackingManager"> |
791 | - <option name="totallyTimeSpent" value="320537000" /> | 795 | + <option name="totallyTimeSpent" value="322222000" /> |
792 | </component> | 796 | </component> |
793 | <component name="ToolWindowManager"> | 797 | <component name="ToolWindowManager"> |
794 | <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> | 798 | <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> |
@@ -867,13 +871,6 @@ | @@ -867,13 +871,6 @@ | ||
867 | <option name="LAST_COMMIT_MESSAGE" value="音频" /> | 871 | <option name="LAST_COMMIT_MESSAGE" value="音频" /> |
868 | </component> | 872 | </component> |
869 | <component name="editorHistoryManager"> | 873 | <component name="editorHistoryManager"> |
870 | - <entry file="file://$PROJECT_DIR$/application/extra/wechat.php"> | ||
871 | - <provider selected="true" editor-type-id="text-editor"> | ||
872 | - <state relative-caret-position="709"> | ||
873 | - <caret line="64" column="24" selection-start-line="64" selection-start-column="24" selection-end-line="64" selection-end-column="24" /> | ||
874 | - </state> | ||
875 | - </provider> | ||
876 | - </entry> | ||
877 | <entry file="file://$PROJECT_DIR$/application/admin/controller/Pay.php"> | 874 | <entry file="file://$PROJECT_DIR$/application/admin/controller/Pay.php"> |
878 | <provider selected="true" editor-type-id="text-editor"> | 875 | <provider selected="true" editor-type-id="text-editor"> |
879 | <state relative-caret-position="425"> | 876 | <state relative-caret-position="425"> |
@@ -1128,13 +1125,6 @@ | @@ -1128,13 +1125,6 @@ | ||
1128 | </state> | 1125 | </state> |
1129 | </provider> | 1126 | </provider> |
1130 | </entry> | 1127 | </entry> |
1131 | - <entry file="file://$PROJECT_DIR$/application/home/view/index/index.html"> | ||
1132 | - <provider selected="true" editor-type-id="text-editor"> | ||
1133 | - <state relative-caret-position="266"> | ||
1134 | - <caret line="73" selection-start-line="73" selection-end-line="73" selection-end-column="28" /> | ||
1135 | - </state> | ||
1136 | - </provider> | ||
1137 | - </entry> | ||
1138 | <entry file="file://$PROJECT_DIR$/public/assets/advertising/css/personal.css"> | 1128 | <entry file="file://$PROJECT_DIR$/public/assets/advertising/css/personal.css"> |
1139 | <provider selected="true" editor-type-id="text-editor"> | 1129 | <provider selected="true" editor-type-id="text-editor"> |
1140 | <state relative-caret-position="407"> | 1130 | <state relative-caret-position="407"> |
@@ -1173,13 +1163,6 @@ | @@ -1173,13 +1163,6 @@ | ||
1173 | <entry file="file://$PROJECT_DIR$/application/home/controller/Server.php"> | 1163 | <entry file="file://$PROJECT_DIR$/application/home/controller/Server.php"> |
1174 | <provider selected="true" editor-type-id="text-editor" /> | 1164 | <provider selected="true" editor-type-id="text-editor" /> |
1175 | </entry> | 1165 | </entry> |
1176 | - <entry file="file://$PROJECT_DIR$/application/home/view/member/index.html"> | ||
1177 | - <provider selected="true" editor-type-id="text-editor"> | ||
1178 | - <state relative-caret-position="691"> | ||
1179 | - <caret line="120" column="32" selection-start-line="120" selection-start-column="32" selection-end-line="120" selection-end-column="32" /> | ||
1180 | - </state> | ||
1181 | - </provider> | ||
1182 | - </entry> | ||
1183 | <entry file="file://$PROJECT_DIR$/application/home/controller/Goods.php"> | 1166 | <entry file="file://$PROJECT_DIR$/application/home/controller/Goods.php"> |
1184 | <provider selected="true" editor-type-id="text-editor"> | 1167 | <provider selected="true" editor-type-id="text-editor"> |
1185 | <state relative-caret-position="460"> | 1168 | <state relative-caret-position="460"> |
@@ -1199,24 +1182,41 @@ | @@ -1199,24 +1182,41 @@ | ||
1199 | </state> | 1182 | </state> |
1200 | </provider> | 1183 | </provider> |
1201 | </entry> | 1184 | </entry> |
1185 | + <entry file="file://$PROJECT_DIR$/public/assets/advertising/css/personalMsg.css"> | ||
1186 | + <provider selected="true" editor-type-id="text-editor"> | ||
1187 | + <state relative-caret-position="-52"> | ||
1188 | + <caret line="25" column="23" selection-start-line="25" selection-start-column="23" selection-end-line="25" selection-end-column="23" /> | ||
1189 | + </state> | ||
1190 | + </provider> | ||
1191 | + </entry> | ||
1192 | + <entry file="file://$PROJECT_DIR$/public/assets/advertising/js/qqmap-wx-jssdk.js"> | ||
1193 | + <provider selected="true" editor-type-id="text-editor" /> | ||
1194 | + </entry> | ||
1202 | <entry file="file://$PROJECT_DIR$/application/home/controller/Member.php"> | 1195 | <entry file="file://$PROJECT_DIR$/application/home/controller/Member.php"> |
1203 | <provider selected="true" editor-type-id="text-editor"> | 1196 | <provider selected="true" editor-type-id="text-editor"> |
1204 | - <state relative-caret-position="561"> | ||
1205 | - <caret line="64" column="32" lean-forward="true" selection-start-line="64" selection-start-column="32" selection-end-line="64" selection-end-column="32" /> | 1197 | + <state relative-caret-position="745"> |
1198 | + <caret line="341" column="70" selection-start-line="341" selection-start-column="70" selection-end-line="341" selection-end-column="70" /> | ||
1206 | </state> | 1199 | </state> |
1207 | </provider> | 1200 | </provider> |
1208 | </entry> | 1201 | </entry> |
1209 | - <entry file="file://$PROJECT_DIR$/application/home/view/member/my_information.html"> | 1202 | + <entry file="file://$PROJECT_DIR$/application/home/view/index/index.html"> |
1210 | <provider selected="true" editor-type-id="text-editor"> | 1203 | <provider selected="true" editor-type-id="text-editor"> |
1211 | - <state relative-caret-position="493"> | ||
1212 | - <caret line="29" column="102" selection-start-line="29" selection-start-column="102" selection-end-line="29" selection-end-column="102" /> | 1204 | + <state relative-caret-position="181"> |
1205 | + <caret line="74" column="67" selection-start-line="74" selection-start-column="67" selection-end-line="74" selection-end-column="67" /> | ||
1213 | </state> | 1206 | </state> |
1214 | </provider> | 1207 | </provider> |
1215 | </entry> | 1208 | </entry> |
1216 | - <entry file="file://$PROJECT_DIR$/public/assets/advertising/css/personalMsg.css"> | 1209 | + <entry file="file://$PROJECT_DIR$/application/home/view/member/index.html"> |
1217 | <provider selected="true" editor-type-id="text-editor"> | 1210 | <provider selected="true" editor-type-id="text-editor"> |
1218 | - <state relative-caret-position="356"> | ||
1219 | - <caret line="25" column="23" selection-start-line="25" selection-start-column="23" selection-end-line="25" selection-end-column="23" /> | 1211 | + <state relative-caret-position="691"> |
1212 | + <caret line="120" column="32" selection-start-line="120" selection-start-column="32" selection-end-line="120" selection-end-column="32" /> | ||
1213 | + </state> | ||
1214 | + </provider> | ||
1215 | + </entry> | ||
1216 | + <entry file="file://$PROJECT_DIR$/application/home/view/member/my_information.html"> | ||
1217 | + <provider selected="true" editor-type-id="text-editor"> | ||
1218 | + <state relative-caret-position="793"> | ||
1219 | + <caret line="145" column="41" selection-start-line="145" selection-start-column="41" selection-end-line="145" selection-end-column="41" /> | ||
1220 | </state> | 1220 | </state> |
1221 | </provider> | 1221 | </provider> |
1222 | </entry> | 1222 | </entry> |
@@ -338,4 +338,7 @@ class Member extends WechatBase | @@ -338,4 +338,7 @@ class Member extends WechatBase | ||
338 | } | 338 | } |
339 | $this->success('success'); | 339 | $this->success('success'); |
340 | } | 340 | } |
341 | + public function getCity(){ | ||
342 | + $url = "https://restapi.amap.com/v3/geocode/regeo?parameters"; | ||
343 | + } | ||
341 | } | 344 | } |
@@ -64,6 +64,7 @@ | @@ -64,6 +64,7 @@ | ||
64 | {include file="public/js" /} | 64 | {include file="public/js" /} |
65 | <script src="__CDN__/assets/advertising/mui/mui.min.js"></script> | 65 | <script src="__CDN__/assets/advertising/mui/mui.min.js"></script> |
66 | <script src="__CDN__/assets/advertising/mui/mui.picker.min.js"></script> | 66 | <script src="__CDN__/assets/advertising/mui/mui.picker.min.js"></script> |
67 | + <script src="__CDN__/assets/advertising/js/qqmap-wx-jssdk.js"></script> | ||
67 | <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script> | 68 | <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script> |
68 | <script> | 69 | <script> |
69 | $(function(){ | 70 | $(function(){ |
@@ -129,32 +130,20 @@ | @@ -129,32 +130,20 @@ | ||
129 | alert('必须同意授权获取地理位置才能获得奖励哦'); | 130 | alert('必须同意授权获取地理位置才能获得奖励哦'); |
130 | } | 131 | } |
131 | }); | 132 | }); |
132 | - wx.openLocation({ | ||
133 | - latitude: 23.099994, | ||
134 | - longitude: 113.324520, | ||
135 | - name: 'TIT 创意园', | ||
136 | - address: '广州市海珠区新港中路 397 号', | ||
137 | - scale: 14, | ||
138 | - infoUrl: 'http://weixin.qq.com' | ||
139 | - }); | ||
140 | }); | 133 | }); |
141 | function success(data) { | 134 | function success(data) { |
142 | lat = data.latitude; //经度 | 135 | lat = data.latitude; //经度 |
143 | lng = data.longitude; //纬度 | 136 | lng = data.longitude; //纬度 |
144 | - //保存到用户表 | ||
145 | - $.ajax({ | ||
146 | - url:"{:url('home/user/location')}", | ||
147 | - type:"POST", | ||
148 | - data:{'user_id':user_id,'longitude':lng,'latitude':lat}, | ||
149 | - success:function(res){ | ||
150 | - if(res.code == 1){ | ||
151 | - toast('定位成功'); | ||
152 | - }else{ | ||
153 | - toast('定位失败'); | ||
154 | - } | 137 | + var qqmapsdk = new QQMapWX({ |
138 | + key: 'PWEBZ-YJVWK-KAYJ2-ATH6Y-I7D35-GZFGU' //这里自己的key秘钥进行填充 | ||
139 | + }); | ||
140 | + qqmapsdk.reverseGeocoder({ | ||
141 | + location: { | ||
142 | + latitude: lat, | ||
143 | + longitude: lng | ||
155 | }, | 144 | }, |
156 | - error:function(res){ | ||
157 | - toast('与服务器断开连接') | 145 | + success: function(res) { |
146 | + console.log(res); | ||
158 | } | 147 | } |
159 | }); | 148 | }); |
160 | } | 149 | } |
1 | +/** | ||
2 | + * 微信小程序JavaScriptSDK | ||
3 | + * | ||
4 | + * @version 1.2 | ||
5 | + * @date 2019-03-06 | ||
6 | + * @author v_ylyue@tencent.com | ||
7 | + */ | ||
8 | + | ||
9 | +var ERROR_CONF = { | ||
10 | + KEY_ERR: 311, | ||
11 | + KEY_ERR_MSG: 'key格式错误', | ||
12 | + PARAM_ERR: 310, | ||
13 | + PARAM_ERR_MSG: '请求参数信息有误', | ||
14 | + SYSTEM_ERR: 600, | ||
15 | + SYSTEM_ERR_MSG: '系统错误', | ||
16 | + WX_ERR_CODE: 1000, | ||
17 | + WX_OK_CODE: 200 | ||
18 | +}; | ||
19 | +var BASE_URL = 'https://apis.map.qq.com/ws/'; | ||
20 | +var URL_SEARCH = BASE_URL + 'place/v1/search'; | ||
21 | +var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion'; | ||
22 | +var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/'; | ||
23 | +var URL_CITY_LIST = BASE_URL + 'district/v1/list'; | ||
24 | +var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren'; | ||
25 | +var URL_DISTANCE = BASE_URL + 'distance/v1/'; | ||
26 | +var URL_DIRECTION = BASE_URL + 'direction/v1/'; | ||
27 | +var MODE = { | ||
28 | + driving: 'driving', | ||
29 | + transit: 'transit' | ||
30 | +}; | ||
31 | +var EARTH_RADIUS = 6378136.49; | ||
32 | +var Utils = { | ||
33 | + /** | ||
34 | + * md5加密方法 | ||
35 | + * 版权所有©2011 Sebastian Tschan,https://blueimp.net | ||
36 | + */ | ||
37 | + safeAdd(x, y) { | ||
38 | + var lsw = (x & 0xffff) + (y & 0xffff); | ||
39 | + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); | ||
40 | + return (msw << 16) | (lsw & 0xffff); | ||
41 | + }, | ||
42 | + bitRotateLeft(num, cnt) { | ||
43 | + return (num << cnt) | (num >>> (32 - cnt)); | ||
44 | + }, | ||
45 | + md5cmn(q, a, b, x, s, t) { | ||
46 | + return this.safeAdd(this.bitRotateLeft(this.safeAdd(this.safeAdd(a, q), this.safeAdd(x, t)), s), b); | ||
47 | + }, | ||
48 | + md5ff(a, b, c, d, x, s, t) { | ||
49 | + return this.md5cmn((b & c) | (~b & d), a, b, x, s, t); | ||
50 | + }, | ||
51 | + md5gg(a, b, c, d, x, s, t) { | ||
52 | + return this.md5cmn((b & d) | (c & ~d), a, b, x, s, t); | ||
53 | + }, | ||
54 | + md5hh(a, b, c, d, x, s, t) { | ||
55 | + return this.md5cmn(b ^ c ^ d, a, b, x, s, t); | ||
56 | + }, | ||
57 | + md5ii(a, b, c, d, x, s, t) { | ||
58 | + return this.md5cmn(c ^ (b | ~d), a, b, x, s, t); | ||
59 | + }, | ||
60 | + binlMD5(x, len) { | ||
61 | + /* append padding */ | ||
62 | + x[len >> 5] |= 0x80 << (len % 32); | ||
63 | + x[((len + 64) >>> 9 << 4) + 14] = len; | ||
64 | + | ||
65 | + var i; | ||
66 | + var olda; | ||
67 | + var oldb; | ||
68 | + var oldc; | ||
69 | + var oldd; | ||
70 | + var a = 1732584193; | ||
71 | + var b = -271733879; | ||
72 | + var c = -1732584194; | ||
73 | + var d = 271733878; | ||
74 | + | ||
75 | + for (i = 0; i < x.length; i += 16) { | ||
76 | + olda = a; | ||
77 | + oldb = b; | ||
78 | + oldc = c; | ||
79 | + oldd = d; | ||
80 | + | ||
81 | + a = this.md5ff(a, b, c, d, x[i], 7, -680876936); | ||
82 | + d = this.md5ff(d, a, b, c, x[i + 1], 12, -389564586); | ||
83 | + c = this.md5ff(c, d, a, b, x[i + 2], 17, 606105819); | ||
84 | + b = this.md5ff(b, c, d, a, x[i + 3], 22, -1044525330); | ||
85 | + a = this.md5ff(a, b, c, d, x[i + 4], 7, -176418897); | ||
86 | + d = this.md5ff(d, a, b, c, x[i + 5], 12, 1200080426); | ||
87 | + c = this.md5ff(c, d, a, b, x[i + 6], 17, -1473231341); | ||
88 | + b = this.md5ff(b, c, d, a, x[i + 7], 22, -45705983); | ||
89 | + a = this.md5ff(a, b, c, d, x[i + 8], 7, 1770035416); | ||
90 | + d = this.md5ff(d, a, b, c, x[i + 9], 12, -1958414417); | ||
91 | + c = this.md5ff(c, d, a, b, x[i + 10], 17, -42063); | ||
92 | + b = this.md5ff(b, c, d, a, x[i + 11], 22, -1990404162); | ||
93 | + a = this.md5ff(a, b, c, d, x[i + 12], 7, 1804603682); | ||
94 | + d = this.md5ff(d, a, b, c, x[i + 13], 12, -40341101); | ||
95 | + c = this.md5ff(c, d, a, b, x[i + 14], 17, -1502002290); | ||
96 | + b = this.md5ff(b, c, d, a, x[i + 15], 22, 1236535329); | ||
97 | + | ||
98 | + a = this.md5gg(a, b, c, d, x[i + 1], 5, -165796510); | ||
99 | + d = this.md5gg(d, a, b, c, x[i + 6], 9, -1069501632); | ||
100 | + c = this.md5gg(c, d, a, b, x[i + 11], 14, 643717713); | ||
101 | + b = this.md5gg(b, c, d, a, x[i], 20, -373897302); | ||
102 | + a = this.md5gg(a, b, c, d, x[i + 5], 5, -701558691); | ||
103 | + d = this.md5gg(d, a, b, c, x[i + 10], 9, 38016083); | ||
104 | + c = this.md5gg(c, d, a, b, x[i + 15], 14, -660478335); | ||
105 | + b = this.md5gg(b, c, d, a, x[i + 4], 20, -405537848); | ||
106 | + a = this.md5gg(a, b, c, d, x[i + 9], 5, 568446438); | ||
107 | + d = this.md5gg(d, a, b, c, x[i + 14], 9, -1019803690); | ||
108 | + c = this.md5gg(c, d, a, b, x[i + 3], 14, -187363961); | ||
109 | + b = this.md5gg(b, c, d, a, x[i + 8], 20, 1163531501); | ||
110 | + a = this.md5gg(a, b, c, d, x[i + 13], 5, -1444681467); | ||
111 | + d = this.md5gg(d, a, b, c, x[i + 2], 9, -51403784); | ||
112 | + c = this.md5gg(c, d, a, b, x[i + 7], 14, 1735328473); | ||
113 | + b = this.md5gg(b, c, d, a, x[i + 12], 20, -1926607734); | ||
114 | + | ||
115 | + a = this.md5hh(a, b, c, d, x[i + 5], 4, -378558); | ||
116 | + d = this.md5hh(d, a, b, c, x[i + 8], 11, -2022574463); | ||
117 | + c = this.md5hh(c, d, a, b, x[i + 11], 16, 1839030562); | ||
118 | + b = this.md5hh(b, c, d, a, x[i + 14], 23, -35309556); | ||
119 | + a = this.md5hh(a, b, c, d, x[i + 1], 4, -1530992060); | ||
120 | + d = this.md5hh(d, a, b, c, x[i + 4], 11, 1272893353); | ||
121 | + c = this.md5hh(c, d, a, b, x[i + 7], 16, -155497632); | ||
122 | + b = this.md5hh(b, c, d, a, x[i + 10], 23, -1094730640); | ||
123 | + a = this.md5hh(a, b, c, d, x[i + 13], 4, 681279174); | ||
124 | + d = this.md5hh(d, a, b, c, x[i], 11, -358537222); | ||
125 | + c = this.md5hh(c, d, a, b, x[i + 3], 16, -722521979); | ||
126 | + b = this.md5hh(b, c, d, a, x[i + 6], 23, 76029189); | ||
127 | + a = this.md5hh(a, b, c, d, x[i + 9], 4, -640364487); | ||
128 | + d = this.md5hh(d, a, b, c, x[i + 12], 11, -421815835); | ||
129 | + c = this.md5hh(c, d, a, b, x[i + 15], 16, 530742520); | ||
130 | + b = this.md5hh(b, c, d, a, x[i + 2], 23, -995338651); | ||
131 | + | ||
132 | + a = this.md5ii(a, b, c, d, x[i], 6, -198630844); | ||
133 | + d = this.md5ii(d, a, b, c, x[i + 7], 10, 1126891415); | ||
134 | + c = this.md5ii(c, d, a, b, x[i + 14], 15, -1416354905); | ||
135 | + b = this.md5ii(b, c, d, a, x[i + 5], 21, -57434055); | ||
136 | + a = this.md5ii(a, b, c, d, x[i + 12], 6, 1700485571); | ||
137 | + d = this.md5ii(d, a, b, c, x[i + 3], 10, -1894986606); | ||
138 | + c = this.md5ii(c, d, a, b, x[i + 10], 15, -1051523); | ||
139 | + b = this.md5ii(b, c, d, a, x[i + 1], 21, -2054922799); | ||
140 | + a = this.md5ii(a, b, c, d, x[i + 8], 6, 1873313359); | ||
141 | + d = this.md5ii(d, a, b, c, x[i + 15], 10, -30611744); | ||
142 | + c = this.md5ii(c, d, a, b, x[i + 6], 15, -1560198380); | ||
143 | + b = this.md5ii(b, c, d, a, x[i + 13], 21, 1309151649); | ||
144 | + a = this.md5ii(a, b, c, d, x[i + 4], 6, -145523070); | ||
145 | + d = this.md5ii(d, a, b, c, x[i + 11], 10, -1120210379); | ||
146 | + c = this.md5ii(c, d, a, b, x[i + 2], 15, 718787259); | ||
147 | + b = this.md5ii(b, c, d, a, x[i + 9], 21, -343485551); | ||
148 | + | ||
149 | + a = this.safeAdd(a, olda); | ||
150 | + b = this.safeAdd(b, oldb); | ||
151 | + c = this.safeAdd(c, oldc); | ||
152 | + d = this.safeAdd(d, oldd); | ||
153 | + } | ||
154 | + return [a, b, c, d]; | ||
155 | + }, | ||
156 | + binl2rstr(input) { | ||
157 | + var i; | ||
158 | + var output = ''; | ||
159 | + var length32 = input.length * 32; | ||
160 | + for (i = 0; i < length32; i += 8) { | ||
161 | + output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff); | ||
162 | + } | ||
163 | + return output; | ||
164 | + }, | ||
165 | + rstr2binl(input) { | ||
166 | + var i; | ||
167 | + var output = []; | ||
168 | + output[(input.length >> 2) - 1] = undefined; | ||
169 | + for (i = 0; i < output.length; i += 1) { | ||
170 | + output[i] = 0; | ||
171 | + } | ||
172 | + var length8 = input.length * 8; | ||
173 | + for (i = 0; i < length8; i += 8) { | ||
174 | + output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32); | ||
175 | + } | ||
176 | + return output; | ||
177 | + }, | ||
178 | + rstrMD5(s) { | ||
179 | + return this.binl2rstr(this.binlMD5(this.rstr2binl(s), s.length * 8)); | ||
180 | + }, | ||
181 | + rstrHMACMD5(key, data) { | ||
182 | + var i; | ||
183 | + var bkey = this.rstr2binl(key); | ||
184 | + var ipad = []; | ||
185 | + var opad = []; | ||
186 | + var hash; | ||
187 | + ipad[15] = opad[15] = undefined; | ||
188 | + if (bkey.length > 16) { | ||
189 | + bkey = this.binlMD5(bkey, key.length * 8); | ||
190 | + } | ||
191 | + for (i = 0; i < 16; i += 1) { | ||
192 | + ipad[i] = bkey[i] ^ 0x36363636; | ||
193 | + opad[i] = bkey[i] ^ 0x5c5c5c5c; | ||
194 | + } | ||
195 | + hash = this.binlMD5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8); | ||
196 | + return this.binl2rstr(this.binlMD5(opad.concat(hash), 512 + 128)); | ||
197 | + }, | ||
198 | + rstr2hex(input) { | ||
199 | + var hexTab = '0123456789abcdef'; | ||
200 | + var output = ''; | ||
201 | + var x; | ||
202 | + var i; | ||
203 | + for (i = 0; i < input.length; i += 1) { | ||
204 | + x = input.charCodeAt(i); | ||
205 | + output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f); | ||
206 | + } | ||
207 | + return output; | ||
208 | + }, | ||
209 | + str2rstrUTF8(input) { | ||
210 | + return unescape(encodeURIComponent(input)); | ||
211 | + }, | ||
212 | + rawMD5(s) { | ||
213 | + return this.rstrMD5(this.str2rstrUTF8(s)); | ||
214 | + }, | ||
215 | + hexMD5(s) { | ||
216 | + return this.rstr2hex(this.rawMD5(s)); | ||
217 | + }, | ||
218 | + rawHMACMD5(k, d) { | ||
219 | + return this.rstrHMACMD5(this.str2rstrUTF8(k), str2rstrUTF8(d)); | ||
220 | + }, | ||
221 | + hexHMACMD5(k, d) { | ||
222 | + return this.rstr2hex(this.rawHMACMD5(k, d)); | ||
223 | + }, | ||
224 | + | ||
225 | + md5(string, key, raw) { | ||
226 | + if (!key) { | ||
227 | + if (!raw) { | ||
228 | + return this.hexMD5(string); | ||
229 | + } | ||
230 | + return this.rawMD5(string); | ||
231 | + } | ||
232 | + if (!raw) { | ||
233 | + return this.hexHMACMD5(key, string); | ||
234 | + } | ||
235 | + return this.rawHMACMD5(key, string); | ||
236 | + }, | ||
237 | + /** | ||
238 | + * 得到md5加密后的sig参数 | ||
239 | + * @param {Object} requestParam 接口参数 | ||
240 | + * @param {String} sk签名字符串 | ||
241 | + * @param {String} featrue 方法名 | ||
242 | + * @return 返回加密后的sig参数 | ||
243 | + */ | ||
244 | + getSig(requestParam, sk, feature, mode) { | ||
245 | + var sig = null; | ||
246 | + var requestArr = []; | ||
247 | + Object.keys(requestParam).sort().forEach(function(key){ | ||
248 | + requestArr.push(key + '=' + requestParam[key]); | ||
249 | + }); | ||
250 | + if (feature == 'search') { | ||
251 | + sig = '/ws/place/v1/search?' + requestArr.join('&') + sk; | ||
252 | + } | ||
253 | + if (feature == 'suggest') { | ||
254 | + sig = '/ws/place/v1/suggestion?' + requestArr.join('&') + sk; | ||
255 | + } | ||
256 | + if (feature == 'reverseGeocoder') { | ||
257 | + sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk; | ||
258 | + } | ||
259 | + if (feature == 'geocoder') { | ||
260 | + sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk; | ||
261 | + } | ||
262 | + if (feature == 'getCityList') { | ||
263 | + sig = '/ws/district/v1/list?' + requestArr.join('&') + sk; | ||
264 | + } | ||
265 | + if (feature == 'getDistrictByCityId') { | ||
266 | + sig = '/ws/district/v1/getchildren?' + requestArr.join('&') + sk; | ||
267 | + } | ||
268 | + if (feature == 'calculateDistance') { | ||
269 | + sig = '/ws/distance/v1/?' + requestArr.join('&') + sk; | ||
270 | + } | ||
271 | + if (feature == 'direction') { | ||
272 | + sig = '/ws/direction/v1/' + mode + '?' + requestArr.join('&') + sk; | ||
273 | + } | ||
274 | + sig = this.md5(sig); | ||
275 | + return sig; | ||
276 | + }, | ||
277 | + /** | ||
278 | + * 得到终点query字符串 | ||
279 | + * @param {Array|String} 检索数据 | ||
280 | + */ | ||
281 | + location2query(data) { | ||
282 | + if (typeof data == 'string') { | ||
283 | + return data; | ||
284 | + } | ||
285 | + var query = ''; | ||
286 | + for (var i = 0; i < data.length; i++) { | ||
287 | + var d = data[i]; | ||
288 | + if (!!query) { | ||
289 | + query += ';'; | ||
290 | + } | ||
291 | + if (d.location) { | ||
292 | + query = query + d.location.lat + ',' + d.location.lng; | ||
293 | + } | ||
294 | + if (d.latitude && d.longitude) { | ||
295 | + query = query + d.latitude + ',' + d.longitude; | ||
296 | + } | ||
297 | + } | ||
298 | + return query; | ||
299 | + }, | ||
300 | + | ||
301 | + /** | ||
302 | + * 计算角度 | ||
303 | + */ | ||
304 | + rad(d) { | ||
305 | + return d * Math.PI / 180.0; | ||
306 | + }, | ||
307 | + /** | ||
308 | + * 处理终点location数组 | ||
309 | + * @return 返回终点数组 | ||
310 | + */ | ||
311 | + getEndLocation(location){ | ||
312 | + var to = location.split(';'); | ||
313 | + var endLocation = []; | ||
314 | + for (var i = 0; i < to.length; i++) { | ||
315 | + endLocation.push({ | ||
316 | + lat: parseFloat(to[i].split(',')[0]), | ||
317 | + lng: parseFloat(to[i].split(',')[1]) | ||
318 | + }) | ||
319 | + } | ||
320 | + return endLocation; | ||
321 | + }, | ||
322 | + | ||
323 | + /** | ||
324 | + * 计算两点间直线距离 | ||
325 | + * @param a 表示纬度差 | ||
326 | + * @param b 表示经度差 | ||
327 | + * @return 返回的是距离,单位m | ||
328 | + */ | ||
329 | + getDistance(latFrom, lngFrom, latTo, lngTo) { | ||
330 | + var radLatFrom = this.rad(latFrom); | ||
331 | + var radLatTo = this.rad(latTo); | ||
332 | + var a = radLatFrom - radLatTo; | ||
333 | + var b = this.rad(lngFrom) - this.rad(lngTo); | ||
334 | + var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2))); | ||
335 | + distance = distance * EARTH_RADIUS; | ||
336 | + distance = Math.round(distance * 10000) / 10000; | ||
337 | + return parseFloat(distance.toFixed(0)); | ||
338 | + }, | ||
339 | + /** | ||
340 | + * 使用微信接口进行定位 | ||
341 | + */ | ||
342 | + getWXLocation(success, fail, complete) { | ||
343 | + wx.getLocation({ | ||
344 | + type: 'gcj02', | ||
345 | + success: success, | ||
346 | + fail: fail, | ||
347 | + complete: complete | ||
348 | + }); | ||
349 | + }, | ||
350 | + | ||
351 | + /** | ||
352 | + * 获取location参数 | ||
353 | + */ | ||
354 | + getLocationParam(location) { | ||
355 | + if (typeof location == 'string') { | ||
356 | + var locationArr = location.split(','); | ||
357 | + if (locationArr.length === 2) { | ||
358 | + location = { | ||
359 | + latitude: location.split(',')[0], | ||
360 | + longitude: location.split(',')[1] | ||
361 | + }; | ||
362 | + } else { | ||
363 | + location = {}; | ||
364 | + } | ||
365 | + } | ||
366 | + return location; | ||
367 | + }, | ||
368 | + | ||
369 | + /** | ||
370 | + * 回调函数默认处理 | ||
371 | + */ | ||
372 | + polyfillParam(param) { | ||
373 | + param.success = param.success || function () { }; | ||
374 | + param.fail = param.fail || function () { }; | ||
375 | + param.complete = param.complete || function () { }; | ||
376 | + }, | ||
377 | + | ||
378 | + /** | ||
379 | + * 验证param对应的key值是否为空 | ||
380 | + * | ||
381 | + * @param {Object} param 接口参数 | ||
382 | + * @param {String} key 对应参数的key | ||
383 | + */ | ||
384 | + checkParamKeyEmpty(param, key) { | ||
385 | + if (!param[key]) { | ||
386 | + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误'); | ||
387 | + param.fail(errconf); | ||
388 | + param.complete(errconf); | ||
389 | + return true; | ||
390 | + } | ||
391 | + return false; | ||
392 | + }, | ||
393 | + | ||
394 | + /** | ||
395 | + * 验证参数中是否存在检索词keyword | ||
396 | + * | ||
397 | + * @param {Object} param 接口参数 | ||
398 | + */ | ||
399 | + checkKeyword(param){ | ||
400 | + return !this.checkParamKeyEmpty(param, 'keyword'); | ||
401 | + }, | ||
402 | + | ||
403 | + /** | ||
404 | + * 验证location值 | ||
405 | + * | ||
406 | + * @param {Object} param 接口参数 | ||
407 | + */ | ||
408 | + checkLocation(param) { | ||
409 | + var location = this.getLocationParam(param.location); | ||
410 | + if (!location || !location.latitude || !location.longitude) { | ||
411 | + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误'); | ||
412 | + param.fail(errconf); | ||
413 | + param.complete(errconf); | ||
414 | + return false; | ||
415 | + } | ||
416 | + return true; | ||
417 | + }, | ||
418 | + | ||
419 | + /** | ||
420 | + * 构造错误数据结构 | ||
421 | + * @param {Number} errCode 错误码 | ||
422 | + * @param {Number} errMsg 错误描述 | ||
423 | + */ | ||
424 | + buildErrorConfig(errCode, errMsg) { | ||
425 | + return { | ||
426 | + status: errCode, | ||
427 | + message: errMsg | ||
428 | + }; | ||
429 | + }, | ||
430 | + | ||
431 | + /** | ||
432 | + * | ||
433 | + * 数据处理函数 | ||
434 | + * 根据传入参数不同处理不同数据 | ||
435 | + * @param {String} feature 功能名称 | ||
436 | + * search 地点搜索 | ||
437 | + * suggest关键词提示 | ||
438 | + * reverseGeocoder逆地址解析 | ||
439 | + * geocoder地址解析 | ||
440 | + * getCityList获取城市列表:父集 | ||
441 | + * getDistrictByCityId获取区县列表:子集 | ||
442 | + * calculateDistance距离计算 | ||
443 | + * @param {Object} param 接口参数 | ||
444 | + * @param {Object} data 数据 | ||
445 | + */ | ||
446 | + handleData(param,data,feature){ | ||
447 | + if (feature == 'search') { | ||
448 | + var searchResult = data.data; | ||
449 | + var searchSimplify = []; | ||
450 | + for (var i = 0; i < searchResult.length; i++) { | ||
451 | + searchSimplify.push({ | ||
452 | + id: searchResult[i].id || null, | ||
453 | + title: searchResult[i].title || null, | ||
454 | + latitude: searchResult[i].location && searchResult[i].location.lat || null, | ||
455 | + longitude: searchResult[i].location && searchResult[i].location.lng || null, | ||
456 | + address: searchResult[i].address || null, | ||
457 | + category: searchResult[i].category || null, | ||
458 | + tel: searchResult[i].tel || null, | ||
459 | + adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null, | ||
460 | + city: searchResult[i].ad_info && searchResult[i].ad_info.city || null, | ||
461 | + district: searchResult[i].ad_info && searchResult[i].ad_info.district || null, | ||
462 | + province: searchResult[i].ad_info && searchResult[i].ad_info.province || null | ||
463 | + }) | ||
464 | + } | ||
465 | + param.success(data, { | ||
466 | + searchResult: searchResult, | ||
467 | + searchSimplify: searchSimplify | ||
468 | + }) | ||
469 | + } else if (feature == 'suggest') { | ||
470 | + var suggestResult = data.data; | ||
471 | + var suggestSimplify = []; | ||
472 | + for (var i = 0; i < suggestResult.length; i++) { | ||
473 | + suggestSimplify.push({ | ||
474 | + adcode: suggestResult[i].adcode || null, | ||
475 | + address: suggestResult[i].address || null, | ||
476 | + category: suggestResult[i].category || null, | ||
477 | + city: suggestResult[i].city || null, | ||
478 | + district: suggestResult[i].district || null, | ||
479 | + id: suggestResult[i].id || null, | ||
480 | + latitude: suggestResult[i].location && suggestResult[i].location.lat || null, | ||
481 | + longitude: suggestResult[i].location && suggestResult[i].location.lng || null, | ||
482 | + province: suggestResult[i].province || null, | ||
483 | + title: suggestResult[i].title || null, | ||
484 | + type: suggestResult[i].type || null | ||
485 | + }) | ||
486 | + } | ||
487 | + param.success(data, { | ||
488 | + suggestResult: suggestResult, | ||
489 | + suggestSimplify: suggestSimplify | ||
490 | + }) | ||
491 | + } else if (feature == 'reverseGeocoder') { | ||
492 | + var reverseGeocoderResult = data.result; | ||
493 | + var reverseGeocoderSimplify = { | ||
494 | + address: reverseGeocoderResult.address || null, | ||
495 | + latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null, | ||
496 | + longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null, | ||
497 | + adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null, | ||
498 | + city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null, | ||
499 | + district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null, | ||
500 | + nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null, | ||
501 | + province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null, | ||
502 | + street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null, | ||
503 | + street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null, | ||
504 | + recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null, | ||
505 | + rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null | ||
506 | + }; | ||
507 | + if (reverseGeocoderResult.pois) {//判断是否返回周边poi | ||
508 | + var pois = reverseGeocoderResult.pois; | ||
509 | + var poisSimplify = []; | ||
510 | + for (var i = 0;i < pois.length;i++) { | ||
511 | + poisSimplify.push({ | ||
512 | + id: pois[i].id || null, | ||
513 | + title: pois[i].title || null, | ||
514 | + latitude: pois[i].location && pois[i].location.lat || null, | ||
515 | + longitude: pois[i].location && pois[i].location.lng || null, | ||
516 | + address: pois[i].address || null, | ||
517 | + category: pois[i].category || null, | ||
518 | + adcode: pois[i].ad_info && pois[i].ad_info.adcode || null, | ||
519 | + city: pois[i].ad_info && pois[i].ad_info.city || null, | ||
520 | + district: pois[i].ad_info && pois[i].ad_info.district || null, | ||
521 | + province: pois[i].ad_info && pois[i].ad_info.province || null | ||
522 | + }) | ||
523 | + } | ||
524 | + param.success(data,{ | ||
525 | + reverseGeocoderResult: reverseGeocoderResult, | ||
526 | + reverseGeocoderSimplify: reverseGeocoderSimplify, | ||
527 | + pois: pois, | ||
528 | + poisSimplify: poisSimplify | ||
529 | + }) | ||
530 | + } else { | ||
531 | + param.success(data, { | ||
532 | + reverseGeocoderResult: reverseGeocoderResult, | ||
533 | + reverseGeocoderSimplify: reverseGeocoderSimplify | ||
534 | + }) | ||
535 | + } | ||
536 | + } else if (feature == 'geocoder') { | ||
537 | + var geocoderResult = data.result; | ||
538 | + var geocoderSimplify = { | ||
539 | + title: geocoderResult.title || null, | ||
540 | + latitude: geocoderResult.location && geocoderResult.location.lat || null, | ||
541 | + longitude: geocoderResult.location && geocoderResult.location.lng || null, | ||
542 | + adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null, | ||
543 | + province: geocoderResult.address_components && geocoderResult.address_components.province || null, | ||
544 | + city: geocoderResult.address_components && geocoderResult.address_components.city || null, | ||
545 | + district: geocoderResult.address_components && geocoderResult.address_components.district || null, | ||
546 | + street: geocoderResult.address_components && geocoderResult.address_components.street || null, | ||
547 | + street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null, | ||
548 | + level: geocoderResult.level || null | ||
549 | + }; | ||
550 | + param.success(data,{ | ||
551 | + geocoderResult: geocoderResult, | ||
552 | + geocoderSimplify: geocoderSimplify | ||
553 | + }); | ||
554 | + } else if (feature == 'getCityList') { | ||
555 | + var provinceResult = data.result[0]; | ||
556 | + var cityResult = data.result[1]; | ||
557 | + var districtResult = data.result[2]; | ||
558 | + param.success(data,{ | ||
559 | + provinceResult: provinceResult, | ||
560 | + cityResult: cityResult, | ||
561 | + districtResult: districtResult | ||
562 | + }); | ||
563 | + } else if (feature == 'getDistrictByCityId') { | ||
564 | + var districtByCity = data.result[0]; | ||
565 | + param.success(data, districtByCity); | ||
566 | + } else if (feature == 'calculateDistance') { | ||
567 | + var calculateDistanceResult = data.result.elements; | ||
568 | + var distance = []; | ||
569 | + for (var i = 0; i < calculateDistanceResult.length; i++){ | ||
570 | + distance.push(calculateDistanceResult[i].distance); | ||
571 | + } | ||
572 | + param.success(data, { | ||
573 | + calculateDistanceResult: calculateDistanceResult, | ||
574 | + distance: distance | ||
575 | + }); | ||
576 | + } else if (feature == 'direction') { | ||
577 | + var direction = data.result.routes; | ||
578 | + param.success(data,direction); | ||
579 | + } else { | ||
580 | + param.success(data); | ||
581 | + } | ||
582 | + }, | ||
583 | + | ||
584 | + /** | ||
585 | + * 构造微信请求参数,公共属性处理 | ||
586 | + * | ||
587 | + * @param {Object} param 接口参数 | ||
588 | + * @param {Object} param 配置项 | ||
589 | + * @param {String} feature 方法名 | ||
590 | + */ | ||
591 | + buildWxRequestConfig(param, options, feature) { | ||
592 | + var that = this; | ||
593 | + options.header = { "content-type": "application/json" }; | ||
594 | + options.method = 'GET'; | ||
595 | + options.success = function (res) { | ||
596 | + var data = res.data; | ||
597 | + if (data.status === 0) { | ||
598 | + that.handleData(param, data, feature); | ||
599 | + } else { | ||
600 | + param.fail(data); | ||
601 | + } | ||
602 | + }; | ||
603 | + options.fail = function (res) { | ||
604 | + res.statusCode = ERROR_CONF.WX_ERR_CODE; | ||
605 | + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); | ||
606 | + }; | ||
607 | + options.complete = function (res) { | ||
608 | + var statusCode = +res.statusCode; | ||
609 | + switch(statusCode) { | ||
610 | + case ERROR_CONF.WX_ERR_CODE: { | ||
611 | + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); | ||
612 | + break; | ||
613 | + } | ||
614 | + case ERROR_CONF.WX_OK_CODE: { | ||
615 | + var data = res.data; | ||
616 | + if (data.status === 0) { | ||
617 | + param.complete(data); | ||
618 | + } else { | ||
619 | + param.complete(that.buildErrorConfig(data.status, data.message)); | ||
620 | + } | ||
621 | + break; | ||
622 | + } | ||
623 | + default:{ | ||
624 | + param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG)); | ||
625 | + } | ||
626 | + | ||
627 | + } | ||
628 | + }; | ||
629 | + return options; | ||
630 | + }, | ||
631 | + | ||
632 | + /** | ||
633 | + * 处理用户参数是否传入坐标进行不同的处理 | ||
634 | + */ | ||
635 | + locationProcess(param, locationsuccess, locationfail, locationcomplete) { | ||
636 | + var that = this; | ||
637 | + locationfail = locationfail || function (res) { | ||
638 | + res.statusCode = ERROR_CONF.WX_ERR_CODE; | ||
639 | + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); | ||
640 | + }; | ||
641 | + locationcomplete = locationcomplete || function (res) { | ||
642 | + if (res.statusCode == ERROR_CONF.WX_ERR_CODE) { | ||
643 | + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); | ||
644 | + } | ||
645 | + }; | ||
646 | + if (!param.location) { | ||
647 | + that.getWXLocation(locationsuccess, locationfail, locationcomplete); | ||
648 | + } else if (that.checkLocation(param)) { | ||
649 | + var location = Utils.getLocationParam(param.location); | ||
650 | + locationsuccess(location); | ||
651 | + } | ||
652 | + } | ||
653 | +}; | ||
654 | + | ||
655 | + | ||
656 | +class QQMapWX { | ||
657 | + | ||
658 | + /** | ||
659 | + * 构造函数 | ||
660 | + * | ||
661 | + * @param {Object} options 接口参数,key 为必选参数 | ||
662 | + */ | ||
663 | + constructor(options) { | ||
664 | + if (!options.key) { | ||
665 | + throw Error('key值不能为空'); | ||
666 | + } | ||
667 | + this.key = options.key; | ||
668 | + }; | ||
669 | + | ||
670 | + /** | ||
671 | + * POI周边检索 | ||
672 | + * | ||
673 | + * @param {Object} options 接口参数对象 | ||
674 | + * | ||
675 | + * 参数对象结构可以参考 | ||
676 | + * @see http://lbs.qq.com/webservice_v1/guide-search.html | ||
677 | + */ | ||
678 | + search(options) { | ||
679 | + var that = this; | ||
680 | + options = options || {}; | ||
681 | + | ||
682 | + Utils.polyfillParam(options); | ||
683 | + | ||
684 | + if (!Utils.checkKeyword(options)) { | ||
685 | + return; | ||
686 | + } | ||
687 | + | ||
688 | + var requestParam = { | ||
689 | + keyword: options.keyword, | ||
690 | + orderby: options.orderby || '_distance', | ||
691 | + page_size: options.page_size || 10, | ||
692 | + page_index: options.page_index || 1, | ||
693 | + output: 'json', | ||
694 | + key: that.key | ||
695 | + }; | ||
696 | + | ||
697 | + if (options.address_format) { | ||
698 | + requestParam.address_format = options.address_format; | ||
699 | + } | ||
700 | + | ||
701 | + if (options.filter) { | ||
702 | + requestParam.filter = options.filter; | ||
703 | + } | ||
704 | + | ||
705 | + var distance = options.distance || "1000"; | ||
706 | + var auto_extend = options.auto_extend || 1; | ||
707 | + var region = null; | ||
708 | + var rectangle = null; | ||
709 | + | ||
710 | + //判断城市限定参数 | ||
711 | + if (options.region) { | ||
712 | + region = options.region; | ||
713 | + } | ||
714 | + | ||
715 | + //矩形限定坐标(暂时只支持字符串格式) | ||
716 | + if (options.rectangle) { | ||
717 | + rectangle = options.rectangle; | ||
718 | + } | ||
719 | + | ||
720 | + var locationsuccess = function (result) { | ||
721 | + if (region && !rectangle) { | ||
722 | + //城市限定参数拼接 | ||
723 | + requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")"; | ||
724 | + if (options.sig) { | ||
725 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); | ||
726 | + } | ||
727 | + } else if (rectangle && !region) { | ||
728 | + //矩形搜索 | ||
729 | + requestParam.boundary = "rectangle(" + rectangle + ")"; | ||
730 | + if (options.sig) { | ||
731 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); | ||
732 | + } | ||
733 | + } else { | ||
734 | + requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")"; | ||
735 | + if (options.sig) { | ||
736 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); | ||
737 | + } | ||
738 | + } | ||
739 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
740 | + url: URL_SEARCH, | ||
741 | + data: requestParam | ||
742 | + }, 'search')); | ||
743 | + }; | ||
744 | + Utils.locationProcess(options, locationsuccess); | ||
745 | + }; | ||
746 | + | ||
747 | + /** | ||
748 | + * sug模糊检索 | ||
749 | + * | ||
750 | + * @param {Object} options 接口参数对象 | ||
751 | + * | ||
752 | + * 参数对象结构可以参考 | ||
753 | + * http://lbs.qq.com/webservice_v1/guide-suggestion.html | ||
754 | + */ | ||
755 | + getSuggestion(options) { | ||
756 | + var that = this; | ||
757 | + options = options || {}; | ||
758 | + Utils.polyfillParam(options); | ||
759 | + | ||
760 | + if (!Utils.checkKeyword(options)) { | ||
761 | + return; | ||
762 | + } | ||
763 | + | ||
764 | + var requestParam = { | ||
765 | + keyword: options.keyword, | ||
766 | + region: options.region || '全国', | ||
767 | + region_fix: options.region_fix || 0, | ||
768 | + policy: options.policy || 0, | ||
769 | + page_size: options.page_size || 10,//控制显示条数 | ||
770 | + page_index: options.page_index || 1,//控制页数 | ||
771 | + get_subpois : options.get_subpois || 0,//返回子地点 | ||
772 | + output: 'json', | ||
773 | + key: that.key | ||
774 | + }; | ||
775 | + //长地址 | ||
776 | + if (options.address_format) { | ||
777 | + requestParam.address_format = options.address_format; | ||
778 | + } | ||
779 | + //过滤 | ||
780 | + if (options.filter) { | ||
781 | + requestParam.filter = options.filter; | ||
782 | + } | ||
783 | + //排序 | ||
784 | + if (options.location) { | ||
785 | + var locationsuccess = function (result) { | ||
786 | + requestParam.location = result.latitude + ',' + result.longitude; | ||
787 | + if (options.sig) { | ||
788 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest'); | ||
789 | + } | ||
790 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
791 | + url: URL_SUGGESTION, | ||
792 | + data: requestParam | ||
793 | + }, "suggest")); | ||
794 | + }; | ||
795 | + Utils.locationProcess(options, locationsuccess); | ||
796 | + } else { | ||
797 | + if (options.sig) { | ||
798 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest'); | ||
799 | + } | ||
800 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
801 | + url: URL_SUGGESTION, | ||
802 | + data: requestParam | ||
803 | + }, "suggest")); | ||
804 | + } | ||
805 | + }; | ||
806 | + | ||
807 | + /** | ||
808 | + * 逆地址解析 | ||
809 | + * | ||
810 | + * @param {Object} options 接口参数对象 | ||
811 | + * | ||
812 | + * 请求参数结构可以参考 | ||
813 | + * http://lbs.qq.com/webservice_v1/guide-gcoder.html | ||
814 | + */ | ||
815 | + reverseGeocoder(options) { | ||
816 | + var that = this; | ||
817 | + options = options || {}; | ||
818 | + Utils.polyfillParam(options); | ||
819 | + var requestParam = { | ||
820 | + coord_type: options.coord_type || 5, | ||
821 | + get_poi: options.get_poi || 0, | ||
822 | + output: 'json', | ||
823 | + key: that.key | ||
824 | + }; | ||
825 | + if (options.poi_options) { | ||
826 | + requestParam.poi_options = options.poi_options | ||
827 | + } | ||
828 | + | ||
829 | + var locationsuccess = function (result) { | ||
830 | + requestParam.location = result.latitude + ',' + result.longitude; | ||
831 | + if (options.sig) { | ||
832 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'reverseGeocoder'); | ||
833 | + } | ||
834 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
835 | + url: URL_GET_GEOCODER, | ||
836 | + data: requestParam | ||
837 | + }, 'reverseGeocoder')); | ||
838 | + }; | ||
839 | + Utils.locationProcess(options, locationsuccess); | ||
840 | + }; | ||
841 | + | ||
842 | + /** | ||
843 | + * 地址解析 | ||
844 | + * | ||
845 | + * @param {Object} options 接口参数对象 | ||
846 | + * | ||
847 | + * 请求参数结构可以参考 | ||
848 | + * http://lbs.qq.com/webservice_v1/guide-geocoder.html | ||
849 | + */ | ||
850 | + geocoder(options) { | ||
851 | + var that = this; | ||
852 | + options = options || {}; | ||
853 | + Utils.polyfillParam(options); | ||
854 | + | ||
855 | + if (Utils.checkParamKeyEmpty(options, 'address')) { | ||
856 | + return; | ||
857 | + } | ||
858 | + | ||
859 | + var requestParam = { | ||
860 | + address: options.address, | ||
861 | + output: 'json', | ||
862 | + key: that.key | ||
863 | + }; | ||
864 | + | ||
865 | + //城市限定 | ||
866 | + if (options.region) { | ||
867 | + requestParam.region = options.region; | ||
868 | + } | ||
869 | + | ||
870 | + if (options.sig) { | ||
871 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'geocoder'); | ||
872 | + } | ||
873 | + | ||
874 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
875 | + url: URL_GET_GEOCODER, | ||
876 | + data: requestParam | ||
877 | + },'geocoder')); | ||
878 | + }; | ||
879 | + | ||
880 | + | ||
881 | + /** | ||
882 | + * 获取城市列表 | ||
883 | + * | ||
884 | + * @param {Object} options 接口参数对象 | ||
885 | + * | ||
886 | + * 请求参数结构可以参考 | ||
887 | + * http://lbs.qq.com/webservice_v1/guide-region.html | ||
888 | + */ | ||
889 | + getCityList(options) { | ||
890 | + var that = this; | ||
891 | + options = options || {}; | ||
892 | + Utils.polyfillParam(options); | ||
893 | + var requestParam = { | ||
894 | + output: 'json', | ||
895 | + key: that.key | ||
896 | + }; | ||
897 | + | ||
898 | + if (options.sig) { | ||
899 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'getCityList'); | ||
900 | + } | ||
901 | + | ||
902 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
903 | + url: URL_CITY_LIST, | ||
904 | + data: requestParam | ||
905 | + },'getCityList')); | ||
906 | + }; | ||
907 | + | ||
908 | + /** | ||
909 | + * 获取对应城市ID的区县列表 | ||
910 | + * | ||
911 | + * @param {Object} options 接口参数对象 | ||
912 | + * | ||
913 | + * 请求参数结构可以参考 | ||
914 | + * http://lbs.qq.com/webservice_v1/guide-region.html | ||
915 | + */ | ||
916 | + getDistrictByCityId(options) { | ||
917 | + var that = this; | ||
918 | + options = options || {}; | ||
919 | + Utils.polyfillParam(options); | ||
920 | + | ||
921 | + if (Utils.checkParamKeyEmpty(options, 'id')) { | ||
922 | + return; | ||
923 | + } | ||
924 | + | ||
925 | + var requestParam = { | ||
926 | + id: options.id || '', | ||
927 | + output: 'json', | ||
928 | + key: that.key | ||
929 | + }; | ||
930 | + | ||
931 | + if (options.sig) { | ||
932 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'getDistrictByCityId'); | ||
933 | + } | ||
934 | + | ||
935 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
936 | + url: URL_AREA_LIST, | ||
937 | + data: requestParam | ||
938 | + },'getDistrictByCityId')); | ||
939 | + }; | ||
940 | + | ||
941 | + /** | ||
942 | + * 用于单起点到多终点的路线距离(非直线距离)计算: | ||
943 | + * 支持两种距离计算方式:步行和驾车。 | ||
944 | + * 起点到终点最大限制直线距离10公里。 | ||
945 | + * | ||
946 | + * 新增直线距离计算。 | ||
947 | + * | ||
948 | + * @param {Object} options 接口参数对象 | ||
949 | + * | ||
950 | + * 请求参数结构可以参考 | ||
951 | + * http://lbs.qq.com/webservice_v1/guide-distance.html | ||
952 | + */ | ||
953 | + calculateDistance(options) { | ||
954 | + var that = this; | ||
955 | + options = options || {}; | ||
956 | + Utils.polyfillParam(options); | ||
957 | + | ||
958 | + if (Utils.checkParamKeyEmpty(options, 'to')) { | ||
959 | + return; | ||
960 | + } | ||
961 | + | ||
962 | + var requestParam = { | ||
963 | + mode: options.mode || 'walking', | ||
964 | + to: Utils.location2query(options.to), | ||
965 | + output: 'json', | ||
966 | + key: that.key | ||
967 | + }; | ||
968 | + | ||
969 | + if (options.from) { | ||
970 | + options.location = options.from; | ||
971 | + } | ||
972 | + | ||
973 | + //计算直线距离 | ||
974 | + if(requestParam.mode == 'straight'){ | ||
975 | + var locationsuccess = function (result) { | ||
976 | + var locationTo = Utils.getEndLocation(requestParam.to);//处理终点坐标 | ||
977 | + var data = { | ||
978 | + message:"query ok", | ||
979 | + result:{ | ||
980 | + elements:[] | ||
981 | + }, | ||
982 | + status:0 | ||
983 | + }; | ||
984 | + for (var i = 0; i < locationTo.length; i++) { | ||
985 | + data.result.elements.push({//将坐标存入 | ||
986 | + distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng), | ||
987 | + duration:0, | ||
988 | + from:{ | ||
989 | + lat: result.latitude, | ||
990 | + lng:result.longitude | ||
991 | + }, | ||
992 | + to:{ | ||
993 | + lat: locationTo[i].lat, | ||
994 | + lng: locationTo[i].lng | ||
995 | + } | ||
996 | + }); | ||
997 | + } | ||
998 | + var calculateResult = data.result.elements; | ||
999 | + var distanceResult = []; | ||
1000 | + for (var i = 0; i < calculateResult.length; i++) { | ||
1001 | + distanceResult.push(calculateResult[i].distance); | ||
1002 | + } | ||
1003 | + return options.success(data,{ | ||
1004 | + calculateResult: calculateResult, | ||
1005 | + distanceResult: distanceResult | ||
1006 | + }); | ||
1007 | + }; | ||
1008 | + | ||
1009 | + Utils.locationProcess(options, locationsuccess); | ||
1010 | + } else { | ||
1011 | + var locationsuccess = function (result) { | ||
1012 | + requestParam.from = result.latitude + ',' + result.longitude; | ||
1013 | + if (options.sig) { | ||
1014 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'calculateDistance'); | ||
1015 | + } | ||
1016 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
1017 | + url: URL_DISTANCE, | ||
1018 | + data: requestParam | ||
1019 | + },'calculateDistance')); | ||
1020 | + }; | ||
1021 | + | ||
1022 | + Utils.locationProcess(options, locationsuccess); | ||
1023 | + } | ||
1024 | + }; | ||
1025 | + | ||
1026 | + /** | ||
1027 | + * 路线规划: | ||
1028 | + * | ||
1029 | + * @param {Object} options 接口参数对象 | ||
1030 | + * | ||
1031 | + * 请求参数结构可以参考 | ||
1032 | + * https://lbs.qq.com/webservice_v1/guide-road.html | ||
1033 | + */ | ||
1034 | + direction(options) { | ||
1035 | + var that = this; | ||
1036 | + options = options || {}; | ||
1037 | + Utils.polyfillParam(options); | ||
1038 | + | ||
1039 | + if (Utils.checkParamKeyEmpty(options, 'to')) { | ||
1040 | + return; | ||
1041 | + } | ||
1042 | + | ||
1043 | + var requestParam = { | ||
1044 | + output: 'json', | ||
1045 | + key: that.key | ||
1046 | + }; | ||
1047 | + | ||
1048 | + //to格式处理 | ||
1049 | + if (typeof options.to == 'string') { | ||
1050 | + requestParam.to = options.to; | ||
1051 | + } else { | ||
1052 | + requestParam.to = options.to.latitude + ',' + options.to.longitude; | ||
1053 | + } | ||
1054 | + //初始化局部请求域名 | ||
1055 | + var SET_URL_DIRECTION = null; | ||
1056 | + //设置默认mode属性 | ||
1057 | + options.mode = options.mode || MODE.driving; | ||
1058 | + | ||
1059 | + //设置请求域名 | ||
1060 | + SET_URL_DIRECTION = URL_DIRECTION + options.mode; | ||
1061 | + | ||
1062 | + if (options.from) { | ||
1063 | + options.location = options.from; | ||
1064 | + } | ||
1065 | + | ||
1066 | + if (options.mode == MODE.driving) { | ||
1067 | + if (options.from_poi) { | ||
1068 | + requestParam.from_poi = options.from_poi; | ||
1069 | + } | ||
1070 | + if (options.heading) { | ||
1071 | + requestParam.heading = options.heading; | ||
1072 | + } | ||
1073 | + if (options.speed) { | ||
1074 | + requestParam.speed = options.speed; | ||
1075 | + } | ||
1076 | + if (options.accuracy) { | ||
1077 | + requestParam.accuracy = options.accuracy; | ||
1078 | + } | ||
1079 | + if (options.road_type) { | ||
1080 | + requestParam.road_type = options.road_type; | ||
1081 | + } | ||
1082 | + if (options.to_poi) { | ||
1083 | + requestParam.to_poi = options.to_poi; | ||
1084 | + } | ||
1085 | + if (options.from_track) { | ||
1086 | + requestParam.from_track = options.from_track; | ||
1087 | + } | ||
1088 | + if (options.waypoints) { | ||
1089 | + requestParam.waypoints = options.waypoints; | ||
1090 | + } | ||
1091 | + if (options.policy) { | ||
1092 | + requestParam.policy = options.policy; | ||
1093 | + } | ||
1094 | + if (options.plate_number) { | ||
1095 | + requestParam.plate_number = options.plate_number; | ||
1096 | + } | ||
1097 | + } | ||
1098 | + | ||
1099 | + if (options.mode == MODE.transit) { | ||
1100 | + if (options.departure_time) { | ||
1101 | + requestParam.departure_time = options.departure_time; | ||
1102 | + } | ||
1103 | + if (options.policy) { | ||
1104 | + requestParam.policy = options.policy; | ||
1105 | + } | ||
1106 | + } | ||
1107 | + | ||
1108 | + var locationsuccess = function (result) { | ||
1109 | + requestParam.from = result.latitude + ',' + result.longitude; | ||
1110 | + if (options.sig) { | ||
1111 | + requestParam.sig = Utils.getSig(requestParam, options.sig, 'direction',options.mode); | ||
1112 | + } | ||
1113 | + wx.request(Utils.buildWxRequestConfig(options, { | ||
1114 | + url: SET_URL_DIRECTION, | ||
1115 | + data: requestParam | ||
1116 | + }, 'direction')); | ||
1117 | + }; | ||
1118 | + | ||
1119 | + Utils.locationProcess(options, locationsuccess); | ||
1120 | + } | ||
1121 | +}; | ||
1122 | + | ||
1123 | +module.exports = QQMapWX; |
-
请 注册 或 登录 后发表评论