我已经加载了世界地图的json文件并使用了d3。然而,俄罗斯的一部分位于地图的另一侧,毗邻阿拉斯加州。
json文件是从我导出为未投影(WGS84)
的shapefile创建的有没有办法改变中央子午线,以便俄罗斯不分裂? 我已经尝试在d3中更改中心,但它没有用。
参考代码:
d3.json("data/world.json", function (error, myMap) {
if (error) return console.error(errorMap);
var myMapFeatures = topojson.feature(myMap, myMap.objects.world);
var projection = d3.geo.mercator()
.center([30,39])
.scale(width*.10)
.translate([width/2, height/2]);
var geoProjectionPath = d3.geo.path()
.projection(projection);
svg.selectAll("path")
.data(myMapFeatures.features)
.enter()
.append("path")
.attr("class", function(d) {
return "country " + d.properties.Terr_Name;
})
.attr("d", geoProjectionPath);
})
答案 0 :(得分:1)
您可以在投影
的var projection = d3.geo.equirectangular()
.center([30,39])
.scale(100)
.rotate([-90,0]);//this will make Russia unsplit
帮助下处理此问题
var parameters: [String : AnyObject ] = [
"email" : "123@gmail.com",
"password" : "password",
"full_name": "XXX",
"profile_pic" : UIImage(named: "abc")!
]
Alamofire.upload(
.POST,
"http://abc/public/user/register",
multipartFormData: { multipartFormData in
for (key, value) in parameters {
multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
}
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .Failure(let encodingError):
print(encodingError)
}
}
)
工作代码here