Hidangkan
Direktori
- 1 Gambaran Keseluruhan Perkhidmatan Peta
- 2
- Carian Tempatan Navigasi Bas
- 4 Navigasi Memandu
- 5 Geocoding
Ikhtisar perkhidmatan peta
Perkhidmatan peta merujuk kepada antara muka yang menyediakan maklumat data, seperti carian setempat, perancangan laluan, dsb. Perkhidmatan yang disediakan oleh Baidu Map API ialah:
LocalSearch: carian setempat, menyediakan perkhidmatan carian lokasi di kawasan tertentu, seperti mencari "taman" di Beijing.
Laluan Transit: Navigasi bas, menyediakan perkhidmatan carian untuk rancangan perjalanan bas di kawasan tertentu.
DrivingRoute: Memandu navigasi, menyediakan perkhidmatan carian untuk rancangan perjalanan memandu.
WalkingRoute: Navigasi berjalan kaki, menyediakan perkhidmatan carian untuk rancangan perjalanan berjalan kaki.
Geocoder: Penghuraian alamat, menyediakan perkhidmatan untuk menukar maklumat alamat kepada maklumat titik koordinat.
LocalCity: Bandar tempatan, menyediakan perkhidmatan yang menentukan bandar anda secara automatik.
TrafficControl: Kawalan trafik masa nyata, menyediakan perkhidmatan maklumat trafik masa nyata dan sejarah.
Antara muka perkhidmatan kelas carian perlu menentukan julat carian, jika tidak, antara muka tidak akan berfungsi.
Carian Tempatan
BMap.LocalSearch menyediakan perkhidmatan carian setempat Apabila menggunakan carian tempatan, anda perlu menetapkan kawasan carian untuknya Kawasan carian boleh menjadi objek BMap.Map, objek BMap.Point atau wilayah atau rentetan nama bandar (contohnya: "Bandar Beijing"). Parameter kedua pembina BMap.LocalSearch adalah pilihan, di mana anda boleh menentukan pemaparan hasil. Kelas BMap.RenderOptions menyediakan beberapa sifat yang mengawal pemaparan, di mana peta menentukan contoh peta di mana keputusan dipaparkan dan panel menentukan elemen kontena senarai hasil.
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var local = new BMap.LocalSearch(map, { renderOptions:{map: map} }); local.search("天安门");
Selain itu, BMap.LocalSearch juga menyediakan kaedah searchNearby dan searchInBounds untuk memberikan anda perkhidmatan carian dan julat sekitar.
Mengkonfigurasi Carian
BMap.LocalSearch menyediakan beberapa kaedah konfigurasi yang melaluinya anda boleh menyesuaikan gelagat perkhidmatan carian untuk memenuhi keperluan anda. Dalam contoh di bawah, kami melaraskan untuk memaparkan 8 hasil setiap halaman, dan secara automatik melaraskan medan pandangan peta mengikut kedudukan titik hasil, tanpa memaparkan tetingkap maklumat hasil pertama:
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var local = new BMap.LocalSearch("北京市", {renderOptions: {map: map,autoViewport: true},pageCapacity: 8}); local.search("中关村");
Keputusan Panel
Dengan menetapkan Sifat BMap.LocalSearchOptions.renderOptions.panel boleh menyediakan bekas senarai hasil untuk objek carian setempat dan hasil carian akan ditambahkan secara automatik pada elemen kontena. Sila lihat contoh di bawah:
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var local = new BMap.LocalSearch(map, {renderOptions: {map: map,panel: "results"}); local.search("中关村");
Antara muka data
Selain hasil carian ditambah secara automatik pada peta dan senarai, anda juga boleh mendapatkan maklumat data terperinci melalui antara muka data Digabungkan dengan API peta, anda boleh menambah anotasi dan tetingkap maklumat pada peta sendiri. Kelas BMap.LocalSearch dan BMap.LocalSearchOptions menyediakan beberapa antara muka untuk menetapkan fungsi panggil balik, yang melaluinya maklumat data hasil carian boleh diperolehi. Sebagai contoh, contoh objek BMap.LocalResult boleh diperolehi melalui parameter fungsi panggil balik onSearchComplete, yang mengandungi maklumat data setiap hasil carian. Apabila fungsi panggil balik dilaksanakan, anda boleh menggunakan kaedah BMap.LocalSearch.getStatus() untuk mengesahkan sama ada carian berjaya atau untuk mendapatkan butiran ralat.
Dalam contoh berikut, maklumat tajuk dan alamat setiap hasil pada halaman pertama diperoleh melalui fungsi panggil balik onSearchComplete dan output ke halaman:
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var options = { onSearchComplete: function(results){ if (local.getStatus() == BMAP_STATUS_SUCCESS){ // 判断状态是否正确 var s = []; for (var i = 0; i < results.getCurrentNumPois(); i ++){ s.push(results.getPoi(i).title + ", " + results.getPoi(i).address); } document.getElementById("log").innerHTML = s.join("<br>"); } } }; var local = new BMap.LocalSearch(map, options); local.search("公园");
Carian persisian
Th
Th , anda Anda boleh mencari berhampiran lokasi atau sekitar titik hasil tertentu. Contoh berikut menunjukkan cara mencari snek berhampiran pintu depan:var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var local = new BMap.LocalSearch(map, { renderOptions:{map: map, autoViewport: true}}); local.searchNearby("小吃", "前门");
Carian Julat Segi Empat
Carian Julat Segiempat akan memberikan hasil carian berdasarkan medan pandangan yang anda berikan. Nota: Apabila skop carian terlalu besar, mungkin tiada hasil. Contoh berikut menunjukkan carian bank dalam medan paparan peta semasa:var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var local = new BMap.LocalSearch(map, { renderOptions:{map: map}}); local.searchInBounds("银行", map.getBounds());
Navigasi transit
Kelas BMap.TransitRoute menyediakan perkhidmatan carian navigasi bas. Sama seperti carian tempatan, anda perlu menentukan kawasan carian sebelum membuat carian. Harap maklum bahawa skop kawasan navigasi bas hanya boleh menjadi bandar, bukan wilayah. Jika kawasan carian ialah objek BMap.Map, hasil laluan ditambahkan pada peta secara automatik. Jika anda menyediakan bekas hasil, penerangan laluan yang sepadan juga akan dipaparkan pada halaman. Contoh berikut menunjukkan cara menggunakan perkhidmatan navigasi bas:var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var transit = new BMap.TransitRoute(map, { renderOptions: {map: map} }); transit.search("王府井", "西单");
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var transit = new BMap.TransitRoute(map, { renderOptions: {map: map, panel: "results"} }); transit.search("王府井", "西单");
Antara muka data
Anda boleh mendapatkan maklumat pelan bas terperinci melalui antara muka data. Hasil carian navigasi bas diwakili oleh BMap.TransitRouteResult, yang mengandungi beberapa rancangan perjalanan bas (BMap.TransitRoutePlan). Setiap pelan perjalanan terdiri daripada laluan berjalan kaki dan laluan bas. Akan ada laluan berjalan kaki antara titik permulaan dan titik naik, antara titik turun dan titik akhir, dan antara setiap stesen pemindahan jika dua titik di atas bertepatan, maka panjang laluan berjalan di antaranya ialah 0.
Dalam contoh di bawah, laluan pelan pertama ditambahkan pada peta melalui antara muka data, dan maklumat penerangan semua rancangan dikeluarkan ke halaman
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 12); var transit = new BMap.TransitRoute("北京市"); transit.setSearchCompleteCallback(function(results){ if (transit.getStatus() == BMAP_STATUS_SUCCESS){ var firstPlan = results.getPlan(0); // 绘制步行线路 for (var i = 0; i < firstPlan.getNumRoutes(); i ++){ var walk = firstPlan.getRoute(i); if (walk.getDistance(false) > 0){ // 步行线路有可能为0 map.addOverlay(new BMap.Polyline(walk.getPoints(), {lineColor: "green"})); } } // 绘制公交线路 for (i = 0; i < firstPlan.getNumLines(); i ++){ var line = firstPlan.getLine(i); map.addOverlay(new BMap.Polyline(line.getPoints())); } // 输出方案信息 var s = []; for (i = 0; i < results.getNumPlans(); i ++){ s.push((i + 1) + ". " + results.getPlan(i).getDescription()); } document.getElementById("log").innerHTML = s.join("<br>"); } }) transit.search("中关村", "国贸桥");
Navigasi pemanduan
disediakan oleh Perkhidmatan navigasi pemanduan BMap.DrivingRoute. Tidak seperti navigasi bas, julat carian navigasi pemanduan boleh ditetapkan kepada wilayah.
Contoh berikut menunjukkan cara menggunakan antara muka navigasi memandu:
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true } }); driving.search("中关村", "天安门");
Result Panel
Dalam contoh di bawah, kami menyediakan parameter panel hasil, dan penerangan penyelesaian akan dipaparkan secara automatik pada halaman . . Hasilnya akan mengandungi beberapa pelan pemanduan (pada masa ini hanya satu pelan disediakan), setiap pelan mengandungi beberapa laluan pemanduan (jika pelan navigasi hanya mengandungi satu destinasi, maka bilangan laluan pemanduan ialah 1, jika pelan itu mengandungi beberapa destinasi , bilangan laluan pemanduan akan lebih besar daripada 1. Pada masa ini, API tidak menyokong navigasi pemanduan untuk berbilang destinasi). Setiap laluan pemanduan akan merangkumi satu siri langkah utama (BMap.Step Langkah-langkah utama menerangkan pelan pemanduan khusus dan boleh diperolehi melalui kaedah BMap.Step.getDescription().
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var driving = new BMap.DrivingRoute(map, { renderOptions: { map : map, panel : "results", autoViewport: true } }); driving.search("中关村", "天安门");
Antara muka navigasi berjalan adalah konsisten digunakan dengan navigasi memandu Sila rujuk dokumentasi API untuk butiran
Geocoding
Geocoding boleh menukar maklumat alamat kepada maklumat titik koordinat geografi.
Dapatkan koordinat berdasarkan penerangan alamat
API Peta Baidu menyediakan kelas Geocoder untuk resolusi alamat Anda boleh menggunakan kaedah Geocoder.getPoint() untuk menukar perihalan alamat kepada koordinat. Dalam contoh berikut, kami akan mendapatkan koordinat geografi alamat "No. 10, Shangdi 10th Street, Daerah Haidian, Beijing" dan menambah label pada lokasi ini. Ambil perhatian bahawa apabila memanggil kaedah Geocoder.getPoint(), anda perlu memberikan bandar tempat alamat itu berada (dalam kes ini, "Beijing").
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var options = { onSearchComplete: function(results){ if (driving.getStatus() == BMAP_STATUS_SUCCESS){ // 获取第一条方案 var plan = results.getPlan(0); // 获取方案的驾车线路 var route = plan.getRoute(0); // 获取每个关键步骤,并输出到页面 var s = []; for (var i = 0; i < route.getNumSteps(); i ++){ var step = route.getStep(i); s.push((i + 1) + ". " + step.getDescription()); } document.getElementById("log").innerHTML = s.join("<br>"); } } }; var driving = new BMap.DrivingRoute(map, options); driving.search("中关村", "天安门");
Geokod terbalik
Proses geokod terbalik adalah sebaliknya. Ia mendapat penerangan alamat berdasarkan titik koordinat. Anda boleh mendapatkan penerangan alamat melalui kaedah Geocoder.getLocation(). Apabila kerja penghuraian selesai, fungsi panggil balik yang anda berikan akan dicetuskan. Jika penghuraian berjaya, parameter fungsi panggil balik ialah objek GeocoderResult, jika tidak ia adalah batal.
var map = new BMap.Map("l-map"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 创建地址解析器实例 var myGeo = new BMap.Geocoder(); // 将地址解析结果显示在地图上,并调整地图视野 myGeo.getPoint("北京市海淀区上地10街10号", function(point){ if (point) { map.centerAndZoom(point, 16); map.addOverlay(new BMap.Marker(point)); } }, "北京市");