首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Datamaps正在显示印度的小地图。

Datamaps正在显示印度的小地图。
EN

Stack Overflow用户
提问于 2016-09-22 15:09:48
回答 1查看 1K关注 0票数 1

嗨,我正在尝试用datamap和d3 js创建一个地图。但它的地图是相反的,而且体积很小。我该怎么解决这个问题。为相同的JS小提琴分享。

代码语言:javascript
复制
    <script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js"></script>
    <script src="https://raw.githubusercontent.com/markmarkoh/datamaps/master/dist/datamaps.ind.js"></script>
    <div id="container" style="position: relative; width: 500px; height: 300px;"></div>

var map = new Datamap({
  element: document.getElementById('container'),
  scope: 'ind'
});

https://jsfiddle.net/bxp9e9j1/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 19:56:17

你需要知道中心和投影在哪里。将此添加到代码中:

代码语言:javascript
复制
  setProjection: function(element) {
    var projection = d3.geo.equirectangular()
      .center([80, 25])
      .scale(600)
      .translate([element.offsetWidth / 2, element.offsetHeight / 2]);
    var path = d3.geo.path()
      .projection(projection);
    return {path: path, projection: projection};
  }

印度中心:20.5937°N,78.9629°E

完整代码:

代码语言:javascript
复制
var map = new Datamap({
  element: document.getElementById('container'),
  scope: 'ind',
  setProjection: function(element) {
    var projection = d3.geo.equirectangular()
      .center([80, 25])
      .scale(600)
      .translate([element.offsetWidth / 2, element.offsetHeight / 2]);
    var path = d3.geo.path()
      .projection(projection);

    return {path: path, projection: projection};
  }
});

提示:您可以将投影类型更改为:Mercator

代码语言:javascript
复制
projection: 'mercator',

给你一个圆形圆球型的平面图。

希望能帮上忙

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39642737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档