bdmapapi.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. define(['$','base'], function($, base) {
  2. var config = {
  3. suggestion: 'http://api.map.baidu.com/place/v2/suggestion',
  4. search: 'http://api.map.baidu.com/place/v2/search',
  5. ak: 'B349f0b32ef6e78b2e678f45cb9fddaf',
  6. output: 'json',
  7. query: '',
  8. region: ''
  9. };
  10. var MapApi = function() {
  11. if (typeof MapApi.instance === 'object') {
  12. return MapApi.instance;
  13. }
  14. MapApi.instance = this;
  15. this.isLoading = false;
  16. }
  17. MapApi.prototype = new base();
  18. var apiErrorResult = {
  19. success: false,
  20. message: '加载哥遇到瓶颈再来一遍嘛 <( ̄︶ ̄)>'
  21. };
  22. MapApi.prototype = {
  23. // 根据城市
  24. getSuggestionList: function (query, region, callback) {
  25. var that = this;
  26. this.isLoading = true;
  27. $.autoAjax({
  28. url: config.suggestion,
  29. data: {
  30. ak: config.ak,
  31. output: config.output,
  32. query: query,
  33. region: region
  34. },
  35. dataType: 'JSON',
  36. success: function(res) {
  37. that.isLoading = false;
  38. if (callback) {
  39. callback(res);
  40. }
  41. },
  42. error: function(res) {
  43. that.isLoading = false;
  44. if (callback) {
  45. callback(apiErrorResult);
  46. }
  47. }
  48. });
  49. },
  50. // 根据坐标
  51. getPlaceList: function (query, location, callback) {
  52. var that = this;
  53. this.isLoading = true;
  54. $.autoAjax({
  55. url: config.search,
  56. data: {
  57. ak: config.ak,
  58. output: config.output,
  59. query: query, // 检索关键字
  60. page_size: '10', // 返回记录数量,默认为10条记录,最大返回结果为20条。
  61. page_num: '0', // 分页页码,默认为0,0代表第一页,1代表第二页,以此类推。
  62. scope: '1', // 检索结果详细程度。取值为1 或空,则返回基本信息;取值为2,返回检索POI详细信息
  63. location: location, // 周边检索中心点,不支持多个点。
  64. radius: '2000' // 周边检索半径,单位为米。
  65. },
  66. dataType: 'JSON',
  67. success: function(res) {
  68. that.isLoading = false;
  69. if (callback) {
  70. callback(res);
  71. }
  72. },
  73. error: function(res) {
  74. that.isLoading = false;
  75. if (callback) {
  76. callback(apiErrorResult);
  77. }
  78. }
  79. });
  80. },
  81. getSearchList: function (q, region, callback) {
  82. var that = this;
  83. this.isLoading = true;
  84. $.autoAjax({
  85. url: config.search,
  86. data: {
  87. ak: config.ak,
  88. output: config.output,
  89. q: q, // 检索关键字,
  90. region: region
  91. },
  92. dataType: 'JSON',
  93. success: function(res) {
  94. that.isLoading = false;
  95. if (callback) {
  96. callback(res);
  97. }
  98. },
  99. error: function(res) {
  100. that.isLoading = false;
  101. if (callback) {
  102. callback(apiErrorResult);
  103. }
  104. }
  105. });
  106. }
  107. }
  108. return new MapApi();
  109. });