사용자 데이터 레이어
Directory
- 1 사용자 데이터 레이어
- 2 사용자 데이터 업로드
- 3 사용자 데이터 레이어 표시
- 4 사용자 데이터 검색
Baidu Map API는 사용자가 LBS 클라우드에 업로드한 위치 데이터를 실시간으로 레이어로 렌더링한 다음 CustomLayer 개체를 통해 지도에 오버레이할 수 있습니다. 현재 LBS Cloud는 사용자가 POI 데이터를 저장할 수 있도록 지원하며, 저장된 필드에는 이름, 주소 및 기타 속성 정보도 포함됩니다. CustomLayer 클래스는 LBS 클라우드 데이터를 읽기 위한 인터페이스를 제공하고, 사용자 데이터를 자동으로 렌더링하여 데이터 레이어를 생성하는 기능도 제공하여 POI 데이터를 반환합니다. 일반적인 프로세스는 다음과 같습니다.
사용자 데이터 업로드
사용자 데이터를 업로드하는 방법에는 HTTP 인터페이스 업로드 방법과 시각적 주석 방법의 두 가지가 있습니다.
1. HTTP 인터페이스 업로드 방법: HTTP 인터페이스 방법은 먼저 데이터 저장 공간(데이터박스)을 생성한 후 사용자의 POI 데이터를 업로드해야 합니다. 저장공간과 POI를 생성할 때 보내는 것은 POST 요청인데, 크롬 브라우저 아래 Postman 플러그인을 사용하면 시각적으로 요청을 보낼 수 있습니다.
2. 시각적 주석 방법: 사용자는 클라우드 스토리지 편집 페이지에 들어간 후 POI 데이터를 입력하도록 주석 모드를 설정합니다. 이 방법은 단순성과 직관성이 특징이지만, 데이터의 양이 많을 때에는 비효율적이다.
사용자 데이터 레이어 표시
사용자 데이터 레이어 오버레이
CustomLayer 생성자는 데이터 저장 공간 ID(geotable id) 매개변수를 수신하여 사용자 데이터 레이어를 생성할 수 있습니다. 데이터 저장을 얻습니다.
코드는 다음과 같습니다.
//根据daboxId创建自定义图层,用户可用自己创建的geotableid替换30960 var customLayer=new BMap.CustomLayer({ geotableId: 30960, q: '', //检索关键字 tags: '', //空格分隔的多字符串 filter: '' //过滤条件,参考http://developer.baidu.com/map/lbs-geosearch.htm#.search.nearby });
지도에 사용자 정의 레이어를 추가하는 방법은 Tilelayer 객체를 추가하는 것과 동일합니다. 즉,
map.addTileLayer(customLayer);//添加自定义图层
다음은 베이징 기차표 판매점 레이어를 지도에 오버레이한 표시 효과입니다.
사용자 데이터 포켓 전시예를 체험해 보세요.
사용자 데이터 영역 이벤트
JSAPIv1.5는 클릭 사용자 데이터 영역 이벤트를 제공하고 클릭 지점에 대한 정보 반환을 지원합니다. 코드는 다음과 같습니다:
customLayer.addEventListener('onhotspotclick',callback);//单击图层事件 function callback(e)//单击热点图层 { var customPoi = e.customPoi, //获取poi对象 str = []; str.push("address = " + customPoi.address); str.push("phoneNumber = " + customPoi.phoneNumber); var content = '<p style="width:280px;margin:0;line-height:20px;">地址:' + customPoi.address + '<br>电话:' + customPoi.phoneNumber + '</p>'; var searchInfoWindow = new BMapLib.SearchInfoWindow(map, content, { //带检索的信息窗口 title: customPoi.title, //标题 width: 290, //宽度 height: 40, //高度 panel : "panel", //检索结果面板 enableAutoPan : true, //自动平移 enableSendToPhone: true, //是否显示发送到手机按钮 searchTypes :[ BMAPLIB_TAB_SEARCH, //周边检索 BMAPLIB_TAB_TO_HERE, //到这里去 BMAPLIB_TAB_FROM_HERE //从这里出发 ] }); var point = new BMap.Point(customPoi.point.lng, customPoi.point.lat); searchInfoWindow.open(point);} }
사용자 데이터 검색
사용자 표시 외에도 자체 소유 데이터 외에도 JSAPI 검색 인터페이스를 사용하여 자체 소유 데이터를 검색할 수도 있습니다. 지원되는 검색 유형에는 도시 내 검색, 직사각형 영역 검색 및 원형 영역 검색이 포함됩니다. 다음은 순환 검색을 예로 들어 순환 영역에서 자신의 데이터를 검색하는 방법을 보여줍니다. 먼저 마우스를 사용하여 원형 영역을 그립니다.
var drawingManager = new BMapLib.DrawingManager(map, { //使用鼠标工具需要引入鼠标工具开源库DrawingManager_min.js及样式文件DrawingManager_min.css isOpen: false, //是否开启绘制模式 enableDrawingTool: false, //是否显示工具栏 drawingToolOptions: { anchor: BMAP_ANCHOR_TOP_RIGHT, //位置 offset: new BMap.Size(5, 5), //偏离值 scale: 0.8 //工具栏缩放比例 } }); drawingManager.setDrawingMode(BMAP_DRAWING_CIRCLE); drawingManager.open();
주변 검색은 마우스 원 그리기의 콜백 기능 내에서 수행됩니다. 종료 이벤트: #🎜🎜 #
drawingManager.addEventListener('circlecomplete', function(e) { circle = e; var radius= parseInt(e.getRadius()); //检索半径必须是整型 var center= e.getCenter(); drawingManager.close(); if (customLayer) { map.removeTileLayer(customLayer); } localSearch.searchNearby(' ', center,radius,{customData:{databoxId: 4032}});//用新创建的databoxid替换该值 });
#🎜 🎜#
사용자 데이터 검색 예시, 직접 경험해 보세요.