我按照这个例子(http://bl.ocks.org/zross/10654766)试图将加利福尼亚州的数据替换为整个美国的县。我用来替换例子中的数据是https://d3js.org/us-10m.v1.json。我将它保存为uscounty.json。在谷歌地图上添加topojson
我的问题是topojson文件无法正确对齐googlemap在正确的位置,尽管功能确实显示出来。我想这与投影有关,但我不知道如何为我想要替换的数据定义正确的投影。
任何意见将不胜感激。
<!DOCTYPE html>
<html>
<head>
<title>HTML5</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=650, user-scalable=yes">
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<style>
html, body {
height: 100%;
margin: 0;
}
#mapcanvas{
height:100%;
}
</style>
<script>
var geoJsonObject;
var thejson;
$(document).ready(function(){
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(38.284335, -120.833818),
mapTypeId: google.maps.MapTypeId.TERRAIN
};
map=new google.maps.Map($('#mapcanvas')[0], mapOptions);
//county.json is a topojson file
$.getJSON("uscounty.json", function(data){
geoJsonObject = topojson.feature(data, data.objects.counties)
map.data.addGeoJson(geoJsonObject);
});
});//end document ready
</script>
</head>
<body>
<div id="mapcanvas">
</div>
</body>
</html>
谢谢你安德鲁!你的详细回答对我有很大的帮助。我试图使用的topojson数据就像你说的那样有投影。我注意到在数据的前几行有变换和翻译标签。我想这就是数据的预测方式。 – Yiran