123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743 |
- define([
- 'modDir/service/addressSearch',
- 'modDir/service/poiSearch',
- ],
- function (addressSearchF, poiSearchF) {
- /**
- * 数据存放模块
- * [modValue description]
- * @type {Object}
- */
- var modValue = {
- pointSearchOptions: { //地名查询参数
- page: 1,
- pageSize: 10,
- keyWord: '',
- center: null, //中心点
- pac: 0, //区域pac
- init_query_key: '' //原始查询关键字
- },
- placeDataResult: null, //查询数据集合
- fitBounds: true,
- resultListHtml: null,
- pageHtml: null,
- markers: {}, //点查询标记集合
- dirName: {},//标记名称集合
- };
- /**
- * 根据pac的长度返回对应zoom
- * @param {[type]} options [description]
- * @return {[type]} [description]
- */
- function getZoom(options) {
- var zhixiashi = [15611, 15612, 15631, 15650, 15681, 15682];
- //直辖市判断
- if (zhixiashi.indexOf(parseInt(options.pac)) != -1) {
- return 11;
- }
- switch (options.pac.toString().length) {
- case 3: //国家
- return 4;
- case 5: //省
- return 6;
- case 7: //市
- return 11;
- case 9: //县
- return 12;
- default:
- return 12;
- }
- };
- /**
- * 通过地图缩放等级和坐标查找 地名
- * @type {Function}
- * @param latLng {Object} 坐标
- * @param callBack_func {Function} 回调
- * @private
- */
- function getInfoByZoomLatLng(latLng, callBack_func) {
- var zoom = map23DData.view.zoom;
- var addressSearch = new addressSearchF();
- addressSearch.getAddressInfo({ zoom: zoom, latLng: [latLng.lat, latLng.lng] }, function (data) {
- data = data.data;
- callBack_func(data);
- });
- };
- /**
- * 创建冒泡窗
- */
- function creatPopupHtml(options) {
- var popupHtml = '<div class="popup_html">' +
- ' <div class="popup-lt"></div>' +
- ' <div class="popup-lb"></div>' +
- ' <div class="popup-rt"></div>' +
- ' <div class="popup-rb"></div>' +
- ' <div class="popup-ct" style="text-indent:15px;line-height:48px">' + options.name +
- ' </div>' +
- ' <div class="popup-cb" style="padding-bottom:20px;color:#666666 !important">' + options.content + '</div>' +
- '</div>'
- return popupHtml;
- }
- /**
- * 地名搜索
- * @type {Function}
- * @param options {Object} {type}
- */
- function pointSearch(options) {
- modValue.pointSearchOptions.init_query_key = options.keyWord;
- getAreaInfo({ keywords: options.keyWord }, function (data) {
- if (data.residue_addr_name.length > 0) {
- modValue.pointSearchOptions.keyWord = data.residue_addr_name;
- //如果只返回一个参考地址
- if (data.address.length == 1) {
- //如果有pac 按pac查
- //if(data.address[0].area_pac>0){
- modValue.pointSearchOptions.type = 'pac';
- modValue.pointSearchOptions.pac = (data.address[0].area_pac.toString()).length > 2 ? (data.address[0].area_pac.toString().substr(2, data.address[0].area_pac.toString().length - 1)) : data.address[0].area_pac;
- if (modValue.pointSearchOptions.pac.length > 7) {
- modValue.pointSearchOptions.pac = modValue.pointSearchOptions.pac.substr(0, 7);
- }
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([data.address[0].area_lat, data.address[0].area_lon], getZoom({ 'pac': modValue.pointSearchOptions.pac }));
- }
- getPageResult({ page: 1 });
- //如果返回多个参考地址,列出参考地址
- } else {
- createNameListForSearchResultHtml(data);
- }
- } else {
- modValue.fitBounds = false;
- if (data.address[0].pac > 0) {
- // if (map2DViewer.display.map2D) {
- // map2DViewer.map.setView([data.address[0].lat, data.address[0].lon], getZoom({ 'pac': data.address[0].pac.toString().substr(2, data.address[0].pac.toString().length - 1) }));
- // }
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([data.address[0].lat, data.address[0].lon], getZoom({ 'pac': data.address[0].pac.toString().substr(2, data.address[0].pac.toString().length - 1) }));
- } else if (map23DData.display.map3D) {
- fly3DInView(data.address[0].lat, data.address[0].lon, getZoom({ 'pac': data.address[0].pac.toString().substr(2, data.address[0].pac.toString().length - 1) }));
- }
- ONEMAP.C.publisher.publish({ type: 'success', message: '已切换至 ' + data.address[0].name + ' 区域' }, 'noteBar::add');
- modValue.placeDataResult = {
- data: [{
- cn: data.address[0].name,
- lon: data.address[0].lon,
- tc: 0,
- tid: 0,
- pac: 0,
- lat: data.address[0].lat,
- id: 0
- }],
- total: 1,
- type: 1,
- page: 1,
- pagesize: 10
- };
- createResultHtml({ fitBounds: false })
- updatePlaceResultHtml();
- setTimeout(function () {
- _this._markers[0].openPopup();
- }, 300);
- } else {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([data.address[0].area_lat, data.address[0].area_lon], getZoom({ 'pac': data.address[0].area_pac.toString().substr(2, data.address[0].area_pac.toString().length - 1) }));
- } else if (map23DData.display.map3D) {
- fly3DInView(data.address[0].area_lat, data.address[0].area_lon, getZoom({ 'pac': data.address[0].area_pac.toString().substr(2, data.address[0].area_pac.toString().length - 1) }));
- }
- //_this._map.setView([data.address[0].area_lat,data.address[0].area_lon],_this._getZoom({'pac':data.address[0].area_pac.toString().substr(2,data.address[0].area_pac.toString().length-1)}));
- ONEMAP.C.publisher.publish({ type: 'success', message: '已切换至 ' + data.address[0].name + ' 区域' }, 'noteBar::add');
- modValue.placeDataResult = { data: [], total: 0, type: 1, page: 1, pagesize: 0 };
- for (var i = 0, l = data.address.length; i < l; i++) {
- modValue.placeDataResult.data.push({
- cn: data.address[i].area_name,
- lon: data.address[i].area_lon,
- tc: 0,
- tid: 0,
- pac: 0,
- lat: data.address[i].area_lat,
- id: i
- });
- modValue.placeDataResult.total++;
- modValue.placeDataResult.pagesize++;
- }
- createResultHtml({ fitBounds: false })
- updatePlaceResultHtml();
- }
- }
- });
- };
- /**
- * 创建getAreaName结果二次查询列表数据
- * @param {[type]} options [description]
- * @return {[type]} [description]
- */
- function createNameListForSearchResultHtml(options) {
- var createNameListHtml = $('<div class="routcategory-list-wrap"></div>')
- switch (ONEMAP.M.toolRouteSearch.modValue.pointSearchType) {
- case 1:
- $('#dStartResult').empty();
- $('#dStartResult').append(createNameListHtml);
- break;
- case 2:
- $('#dStopResult').empty();
- $('#dStopResult').append(createNameListHtml);
- break;
- case 3:
- var id = '#' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentId;
- $(id).empty();
- $(id).append(createNameListHtml);
- break;
- }
- $('<h3>请选择查询的区域:</h3>').appendTo($(".routcategory-list-wrap"));
- for (var i = 0, l = options.address.length; i < l; i++) {
- var place = options.address[i];
- place.pnum = i;
- var nLatlng = L.Util.formatHMS([place.area_lat, place.area_lon]);
- var _placeDl = $('<dl class="areaSelect fi" id="plm' + place.pnum + '"></dl>');
- var _placeDt = $('<dt><a>' + place.area_name + '</a> <span class="address" style="color:#fff"></span></dt>');
- getPlaceName(L.latLng([place.area_lat, place.area_lon]), _placeDt);
- _placeDl.bind('click', { d: place }, function (e) {
- $("#placePanel .place-list .cur").removeClass("cur");
- $(this).addClass("cur");
- modValue.pointSearchOptions.type = 'pac';
- modValue.pointSearchOptions.pac = (e.data.d.area_pac.toString()).length > 2 ? (e.data.d.area_pac.toString().substr(2, e.data.d.area_pac.toString().length - 1)) : e.data.d.area_pac;
- if (modValue.pointSearchOptions.pac.length > 7) {
- modValue.pointSearchOptions.pac = modValue.pointSearchOptions.pac.substr(0, 7);
- }
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.area_lat, e.data.d.area_lon], getZoom({ 'pac': modValue.pointSearchOptions.pac }));
- } else if (map23DData.display.map3D) {
- fly3DInView(e.data.d.area_lat, e.data.d.area_lon, getZoom({ 'pac': modValue.pointSearchOptions.pac }));
- }
- getPageResult({ page: 1 });
- });
- _placeDt.appendTo(_placeDl);
- _placeDl.appendTo($(".routcategory-list-wrap"));
- }
- };
- /**
- * 更新地名查询结果列表
- * @param {[type]} options [description]
- * @return {[type]} [description]
- */
- function updatePlaceResultHtml() {
- switch (ONEMAP.M.toolRouteSearch.modValue.pointSearchType) {
- case 1:
- $('#dStartResult').empty();
- $('#dStartResult').append(modValue.resultListHtml).append(modValue.pageHtml);
- break;
- case 2:
- $('#dStopResult').empty();
- $('#dStopResult').append(modValue.resultListHtml).append(modValue.pageHtml);
- break;
- case 3:
- var id = '#' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentId;
- $(id).empty();
- $(id).append(modValue.resultListHtml).append(modValue.pageHtml);
- break;
- };
- $("#pointsSearchPageJump .page_num").bind('keydown', function (e) {
- if (e.keyCode === 13) {
- var pageJump = parseInt($("#pointsSearchPageJump .page_num").val());
- if (!pageJump || pageJump > $("#pointsSearchPageJump").attr('countPages')) {
- return;
- } else {
- getPageResult({ 'page': parseInt(pageJump) });
- }
- }
- });
- $("#pointsSearchPageJump .btn").bind('click', function () {
- getPageResult({ page: $(this).attr("pid") });
- });
- };
- /**
- * 三维跳转
- */
- function fly3DInView(lat, lng, zoom) {
- map3DViewer.flyTo({
- center: {
- lat: lat,
- lng: lng
- },
- zoom: zoom,
- heading: 0,//摄像机平面角度 正北为0
- tilt: 0,//摄像机倾斜角
- });
- };
- /**
- * 构建分页数据
- * @type {Function}
- * @returns {*}
- * @private
- */
- function createResultHtml(options) {
- ONEMAP.M.toolRouteSearch.clearMarker();
- modValue.resultListHtml = $('<div></div>');
- if (modValue.placeDataResult.type == 2) {
- $('<h3>请选择查询的区域:</h3>').appendTo(modValue.resultListHtml);
- //列出一级
- var place_fi_length = 0;
- for (var place_fi in modValue.placeDataResult['data']) {
- if (ONEMAP.T.getObjNameAry(modValue.placeDataResult['data']).length > 1) {
- place_fi_length++;
- var _placeDl = $('<dl class="areaSelect fi" pid="' + modValue.placeDataResult['data'][place_fi]['pac'] + '"></dl>');
- var _placeDt = $('<dt><a href="javascript:void(0)">' + place_fi + '(' + modValue.placeDataResult['data'][place_fi]['count'] + ')</a></dt>');
- modValue.placeDataResult['data'][place_fi].area_name = place_fi;
- _placeDl.bind('click', { d: modValue.placeDataResult['data'][place_fi] }, function (e) {
- if (modValue.pointSearchOptions.type == 'pac') {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.lat, e.data.d.lon], getZoom({ 'pac': e.data.d.pac }));
- } else if (map23DData.display.map3D) {
- fly3DInView(e.data.d.lat, e.data.d.lon, getZoom({ 'pac': e.data.d.pac }));
- }
- modValue.pointSearchOptions.pac = e.data.d.pac;
- setTimeout(function () {
- modValue.pointSearchOptions.type = 'pac';
- getPageResult({ page: 1 });
- }, 300);
- } else {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.lat, e.data.d.lon], map23DData.view.zoom + 2);
- } else if (map23DData.display.map3D) {
- fly3DInView(e.data.d.lat, e.data.d.lon, map23DData.view.zoom + 2);
- }
- }
- ONEMAP.C.publisher.publish({ type: 'success', message: '已切换至 ' + e.data.d.area_name + ' 区域' }, 'noteBar::add');
- });
- _placeDt.appendTo(_placeDl);
- _placeDl.appendTo(modValue.resultListHtml);
- }
- //列出二级
- var place_se_length = 0;
- for (var place_se in modValue.placeDataResult['data'][place_fi]['sub']) {
- if (ONEMAP.T.getObjNameAry(modValue.placeDataResult['data'][place_fi]['sub']).length > 1) {
- place_se_length++;
- var _placeDl_se = $('<dl class="areaSelect se" pid="' + modValue.placeDataResult['data'][place_fi]['sub'][place_se]['pac'] + '"></dl>');
- var _placeDt_se = $('<dt><a href="javascript:void(0)">' + place_se + '(' + modValue.placeDataResult['data'][place_fi]['sub'][place_se]['count'] + ')</a></dt>');
- modValue.placeDataResult['data'][place_fi]['sub'][place_se].area_name = place_se;
- _placeDl_se.bind('click', { d: modValue.placeDataResult['data'][place_fi]['sub'][place_se] }, function (e) {
- if (modValue.pointSearchOptions.type == 'pac') {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.lat, e.data.d.lon], getZoom({ 'pac': e.data.d.pac }));
- }
- modValue.pointSearchOptions.pac = e.data.d.pac;
- setTimeout(function () {
- modValue.pointSearchOptions.type = 'pac';
- getPageResult({ page: 1 });
- }, 300);
- } else {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.lat, e.data.d.lon], map23DData.view.zoom + 2);
- } else if (map23DData.display.map3D) {
- fly3DInView(e.data.d.lat, e.data.d.lon, map23DData.view.zoom + 2);
- }
- }
- ONEMAP.C.publisher.publish({ type: 'success', message: '已切换至 ' + e.data.d.area_name + ' 区域' }, 'noteBar::add');
- });
- _placeDt_se.appendTo(_placeDl_se);
- _placeDl_se.appendTo(modValue.resultListHtml);
- }
- //如果二级只有一个,列出三级
- if (ONEMAP.T.getObjNameAry(modValue.placeDataResult['data'][place_fi]['sub']).length == 1) {
- for (var place_th in modValue.placeDataResult['data'][place_fi]['sub'][place_se]['sub']) {
- var _placeDl_th = $('<dl class="areaSelect th" pid="' + modValue.placeDataResult['data'][place_fi]['sub'][place_se]['sub'][place_th]['pac'] + '"></dl>');
- var _placeDt_th = $('<dt><a href="javascript:void(0)">' + place_th + '(' + modValue.placeDataResult['data'][place_fi]['sub'][place_se]['sub'][place_th]['count'] + ')</a></dt>');
- modValue.placeDataResult['data'][place_fi]['sub'][place_se]['sub'][place_th].area_name = place_th;
- _placeDl_th.bind('click', { d: modValue.placeDataResult['data'][place_fi]['sub'][place_se]['sub'][place_th] }, function (e) {
- if (modValue.pointSearchOptions.type == 'pac') {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.lat, e.data.d.lon], getZoom({ 'pac': e.data.d.pac }));
- } else if (map23DData.display.map3D) {
- fly3DInView(e.data.d.lat, e.data.d.lon, getZoom({ 'pac': e.data.d.pac }));
- }
- modValue.pointSearchOptions.pac = e.data.d.pac;
- setTimeout(function () {
- modValue.pointSearchOptions.type = 'pac';
- getPageResult({ page: 1 });
- }, 300);
- } else {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.lat, e.data.d.lon], map23DData.view.zoom + 2);
- } else if (map23DData.display.map3) {
- fly3DInView(e.data.d.lat, e.data.d.lon, map23DData.view.zoom + 2);
- }
- }
- ONEMAP.C.publisher.publish({ type: 'success', message: '已切换至 ' + e.data.d.area_name + ' 区域' }, 'noteBar::add');
- });
- _placeDt_th.appendTo(_placeDl_th);
- _placeDl_th.appendTo(modValue.resultListHtml);
- }
- }
- }
- }
- modValue.pageHtml = $('');
- } else {
- for (var i = 0, l = modValue.placeDataResult.data.length; i < l; i++) {
- var place = modValue.placeDataResult.data[i];
- place.pnum = i;
- var nLatlng = L.Util.formatHMS([place.lat, place.lon]);
- var _placeDl = $('<dl class="place-dl" id="plm' + place.id + '"></dl>');
- $("#roadViewList").empty()
- var setWayBtn = '';
- if (ONEMAP.M.toolRouteSearch.modValue.pointSearchType == 1) {
- setWayBtn = '<button onclick="ONEMAP.M.routPlaceSearch.pointSetWayPoint(\'' + place.id + '\',\'start\',\'' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentCid + '\')" class="btn btn4 btn-set-way">设为起点</button>';
- } else if (ONEMAP.M.toolRouteSearch.modValue.pointSearchType == 2) {
- setWayBtn = '<button onclick="ONEMAP.M.routPlaceSearch.pointSetWayPoint(\'' + place.id + '\',\'stop\',\'' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentCid + '\')" class="btn btn4 btn-set-way">设为终点</button>';
- } else if (ONEMAP.M.toolRouteSearch.modValue.pointSearchType == 3) {
- setWayBtn = '<button onclick="ONEMAP.M.routPlaceSearch.pointSetWayPoint(\'' + place.id + '\',\'across\',\'' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentCid + '\')" class="btn btn4 btn-set-way">设为途经点</button>';
- }
- var _placeDt = $('<dt><i class="p' + (i + 1) + '"><img src="../images/layout/marker-icon' + (i + 1) + '.png" /></i><a href="javascript:void(0)">' + place.cn + '</a>' + setWayBtn + '</dt>');
- var _placeDd = $('<dd><p class="address"></p>' +
- '<p class="latlng">' + nLatlng.lng + ' , ' + nLatlng.lat + '</p></dd>');
- getPlaceName(L.latLng([place.lat, place.lon]), _placeDd);
- if (i == 0) {
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([place.lat, place.lon], map23DData.view.zoom + 2);
- } else if (map23DData.display.map3) {
- fly3DInView(place.lon, place.lon, map23DData.view.zoom + 2);
- }
- }
- _placeDt.find('a').bind('click', { d: place }, function (e) {
- if (modValue.markers[e.data.d.id]) {
- map23DControl.marker({
- action: 'remove',
- guid: modValue.markers[e.data.d.id]
- })
- delete modValue.markers[e.data.d.id];
- markerToMap(e.data.d);
- map2DViewer.markers[modValue.markers[e.data.d.id]].openPopup();
- map2DViewer.setView({
- center: {
- lat: place.lat,
- lng: place.lon
- },
- zoom: map23DData.view.zoom
- });
- map3DViewer.flyTo({
- center: {
- lat: place.lat,
- lng: place.lon
- },
- zoom: map23DData.view.zoom
- });
- }
- var zoomTo = ((map23DData.view.zoom > 14) ? _this._map.getZoom() : 14);
- if (map23DData.display.map2D) {
- map2DViewer.map.setView([e.data.d.lat, e.data.d.lon], zoomTo);
- }
- //_this._map.setView([e.data.d.lat, e.data.d.lon],_this._getZoom({'pac':e.data.d.pac.toString().substr(2,e.data.d.pac.toString().length-1)}));
- $("#pointSearchResult .place-dl.cur").removeClass("cur");
- $(this).parent().parent().addClass("cur");
- });
- _placeDt.appendTo(_placeDl);
- _placeDd.appendTo(_placeDl);
- _placeDl.appendTo(modValue.resultListHtml);
- markerToMap(place);
- }
- if (modValue.fitBounds) {
- if (map23DData.display.map2D) {
- //map2DViewer.map.fitBounds(map2DViewer.groups[modValue._markerGroup].getBounds(), { 'paddingTopLeft': [100, 100], 'paddingBottomRight': [100, 100] });
- }
- }
- modValue.pageHtml = $('<div id="pointsSearchPageJump" class="page-wrap"></div>');
- var countPages = modValue.placeDataResult.num_pages;
- if (countPages == 0) {
- countPages = 1;
- }
- var pageJump = $('<div countPages="' + countPages + '" class="count"><span>第</span><input class="page_num input input-small" value="' + modValue.placeDataResult.page + '" type="text" /><span>/' + countPages + '页</span></div>');
- if (modValue.placeDataResult.hasOwnProperty('num_pages')) {
- pageJump.appendTo(modValue.pageHtml);
- $(pageJump).show();
- } else {
- $(pageJump).hide();
- }
- var pageHtmlBtnGroup = $('<div class="btn-group"></div>').appendTo(modValue.pageHtml);
- if (modValue.placeDataResult.per_page < modValue.placeDataResult.total) {
- if (modValue.placeDataResult.page == 1) {
- var abtnNext = $('<button type="button" class="btn btn2 btn-small next" pid=' + (modValue.placeDataResult.page + 1) + '>下一页</button>');
- pageHtmlBtnGroup.append(abtnNext);
- } else if (countPages == modValue.placeDataResult.page && modValue.placeDataResult.total > modValue.placeDataResult.pagesize) {
- var abtnPrev = $('<button type="button" class="btn btn2 btn-small prev" pid=' + (modValue.placeDataResult.page - 1) + '>上一页</button>');
- pageHtmlBtnGroup.append(abtnPrev);
- } else {
- var abtnPrev = $('<button type="button" class="btn btn2 btn-small prev" pid=' + (modValue.placeDataResult.page - 1) + '>上一页</button>');
- var abtnNext = $('<button type="button" class="btn btn2 btn-small next" pid=' + (modValue.placeDataResult.page + 1) + '>下一页</button>');
- pageHtmlBtnGroup.append(abtnPrev).append(abtnNext);
- }
- }
- }
- $("#pointSearchResult").mCustomScrollbar("update");
- };
- /**
- * 查询地点数据
- * @type {Function}
- * @param options {Object} {page}
- */
- function getPageResult(options) {
- modValue.pointSearchOptions.page = options.page;
- var poiSearch = new poiSearchF({
- page: modValue.pointSearchOptions.page,
- pageSize: modValue.pointSearchOptions.pageSize
- });
- if (modValue.pointSearchOptions.type === 'pac') {
- poiSearch.getPoiByOptions({ pac: modValue.pointSearchOptions.pac, keywords: modValue.pointSearchOptions.keyWord }, function (data) {
- if (data.hasOwnProperty('type')) {
- if (data.type == 1) {
- if (data.hasOwnProperty('data') && data['data'].length > 0) {
- data.page = data.page * 1;
- modValue.placeDataResult = data;
- createResultHtml(options)
- updatePlaceResultHtml();
- } else {
- modValue.resultListHtml = $('<div></div>');
- $('<p class="note">没有搜索到 ' + modValue.pointSearchOptions.init_query_key + ' 的信息,请修改搜索条件。</p>').appendTo(modValue.resultListHtml);
- modValue.pageHtml = $('');
- updatePlaceResultHtml();
- }
- } else if (data.type == 2) {
- data.page = data.page * 1;
- modValue.placeDataResult = data;
- createResultHtml(options)
- updatePlaceResultHtml();
- }
- } else {
- modValue.resultListHtml = $('<div></div>');
- $('<p class="note">没有搜索到 ' + modValue.pointSearchOptions.init_query_key + ' 的信息,请修改搜索条件。</p>').appendTo(modValue.resultListHtml);
- modValue.pageHtml = $('');
- updatePlaceResultHtml();
- }
- });
- }
- };
- /**
- * 添加标记到地图
- * @type {Function}
- * @param obj {Object} marker对象
- * @private
- */
- function markerToMap(obj) {
- var markerObj = {
- latlng: [obj.lat, obj.lon],
- name: obj.cn,
- pguid: obj.id,
- pnum: obj.pnum
- };
- createMarker(markerObj);
- };
- /**
- * 地名查询冒泡设置起点/终点
- * @param {[type]} pguid [description]
- * @param {[type]} type [description]
- * @return {[type]} [description]
- */
- function pointSetWayPoint(pguid, type, cid) {
- switch (type) {
- case 'start':
- ONEMAP.M.toolRouteSearch.setStartPoint(map23DData.markers[modValue.markers[pguid]].geojson.geometry.coordinates, modValue.dirName[pguid]);
- $.each(modValue.markers, function (index, item) {
- map23DControl.marker({
- action: 'remove',
- guid: modValue.markers[index]
- })
- })
- map23DControl.marker({
- action: 'remove',
- guid: modValue.markers[pguid]
- })
- var next = $("#pointSearchResultWrap .open").next();
- $("#pointSearchResultWrap .open").hide().remove();
- if (next) {
- $(next).find('.header').click();
- }
- break;
- case 'across':
- cid = cid;
- ONEMAP.M.toolRouteSearch.setAcrossPoint(map23DData.markers[modValue.markers[pguid]].geojson.geometry.coordinates, modValue.dirName[pguid], cid);
- $.each(modValue.markers, function (index, item) {
- map23DControl.marker({
- action: 'remove',
- guid: modValue.markers[index]
- })
- })
- map23DControl.marker({
- action: 'remove',
- guid: modValue.markers[pguid]
- })
- var next = $("#pointSearchResultWrap .open").next();
- $("#pointSearchResultWrap .open").hide().remove();
- if (next) {
- $(next).find('.header').click();
- }
- break;
- case 'stop':
- ONEMAP.M.toolRouteSearch.setStopPoint(map23DData.markers[modValue.markers[pguid]].geojson.geometry.coordinates, modValue.dirName[pguid]);
- $.each(modValue.markers, function (index, item) {
- map23DControl.marker({
- action: 'remove',
- guid: modValue.markers[index]
- })
- })
- map23DControl.marker({
- action: 'remove',
- guid: modValue.markers[pguid]
- })
- var next = $("#pointSearchResultWrap .open").next();
- $("#pointSearchResultWrap .open").hide().remove();
- if (next) {
- $(next).find('.header').click();
- }
- break;
- }
- };
- /**
- * 添加统计图标
- * @param {[type]} obj [description]
- * @return {[type]} [description]
- */
- function createMarker(obj) {
- var setWayBtn = '';
- if (ONEMAP.M.toolRouteSearch.modValue.pointSearchType == 1) {
- setWayBtn = '<a id="placeSearchPointFrom" href="javascript:ONEMAP.M.routPlaceSearch.pointSetWayPoint(\'' + obj.pguid + '\',\'start\',' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentCid + ')">起点</a>';
- } else if (ONEMAP.M.toolRouteSearch.modValue.pointSearchType == 2) {
- setWayBtn = '<a id="placeSearchPointGoTo" href="javascript:ONEMAP.M.routPlaceSearch.pointSetWayPoint(\'' + obj.pguid + '\',\'stop\',' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentCid + ')">终点</a>';
- } else if (ONEMAP.M.toolRouteSearch.modValue.pointSearchType == 3) {
- setWayBtn = '<a id="placeSearchPointGoTo" href="javascript:ONEMAP.M.routPlaceSearch.pointSetWayPoint(\'' + obj.pguid + '\',\'across\',' + ONEMAP.M.toolRouteSearch.modValue.pointSearchContentCid + ')">途经点</button>';
- }
- var markerHtml = '<div class="placeInfo">' +
- '<div class="op text-right">设为:' +
- setWayBtn +
- '</div>' +
- '</div>';
- var options_popup = {
- name: obj.name,
- content: markerHtml
- }
- markerHtml = creatPopupHtml(options_popup);
- var markerId = map23DControl.marker({
- action: 'add',
- groupId: ONEMAP.M.toolRouteSearch.modValue.markerGroup,
- pnum: obj.pguid,
- geojson: {
- "properties": {
- iconUrl: map23DConfig.map23DAssetsUrl + '/images/layout/marker/roadsign_icon_0.png',
- iconSize: [60, 39],
- iconAnchor: [29, 39],
- popupAnchor: [0, -39],
- title: obj.name
- },
- "geometry": {
- "type": "Point",
- "coordinates": [obj.latlng[1], obj.latlng[0]]
- }
- }
- });
- modValue.markers[obj.pguid] = markerId;
- modValue.dirName[obj.pguid] = obj.name;
- //if (map23DData.display.map2D) {
- map2DViewer.markers[markerId].bindPopup(markerHtml, {
- closeButton: false,
- maxWidth: 140,
- minWidth: 140,
- title: obj.name
- });
- map2DViewer.markers[markerId].on("mouseover", function () {
- $('.d-waypoints .cur').removeClass('cur');
- $('#plm' + this.pguid).addClass('cur');
- });
- //}else if(map23DData.display.map3D){
- // map3DViewer.label({
- // action:'update',
- // guid:markerId,
- // featureType:'marker',
- // label:{
- // text:obj.name, //标牌内容
- // textColor:'#ffffff', //标牌文字颜色
- // lineColor:'#ff0000', //标牌引线及边框颜色
- // background:'#FF0000', //标牌背景颜色
- // lineTop:10, //标牌偏移值
- // lineLeft:100 //标牌偏移值
- // }
- // })
- //};
- };
- /**
- * 无结果列表
- * @type {Function}
- * @param notText {String} 无结果说明文字
- * @returns {*}
- * @private
- */
- function setNotPointResultHtml(notText) {
- $('<p class="not-result">' + notText + '</p>').appendTo(modValue.resultHtml);
- };
- /**
- * 菜单 获取地名
- * @type {Function}
- * @param latlng {Object} 坐标
- * @param abc {Object} 容器
- * @param zoom {Int} 缩放等级
- * @private
- */
- function getPlaceName(latlng, abc, zoom) {
- var addressSearch = new addressSearchF();
- addressSearch.getAddressInfo({ zoom: (zoom ? zoom : 8), latLng: [latlng.lat, latlng.lng] }, function (data) {
- data = data.data;
- abc.find('.address').empty().append(data.region);
- $("#pointSearchResult").mCustomScrollbar("update");
- });
- };
- /**
- * 获取区域信息
- * @param {[type]} options [description]
- * @param {[type]} callback_func [description]
- * @return {[type]} [description]
- */
- function getAreaInfo(options, callback_func) {
- var poiSearch = new poiSearchF();
- poiSearch.getAreaInfo({ keywords: options.keywords }, function (data) {
- data = data.data;
- callback_func(data);
- });
- };
- return ONEMAP.M.routPlaceSearch = {
- pointSearch: pointSearch,
- modValue: modValue,
- pointSetWayPoint: pointSetWayPoint,
- getInfoByZoomLatLng: getInfoByZoomLatLng
- };
- })
|