Anda harus memiliki fungsi proyeksi () untuk memproyeksikan lat dan panjang poin Anda ke peta. Secara default, jalur geo d3 menggunakan proyeksi albersUsa, sehingga Anda dapat mendeklarasikannya secara eksplisit:
var projection = d3.geo.albersUsa();
Anda akan melihat ini dilakukan dalam contoh yang tidak menggunakan AlbersUsa, dan dengan mendefinisikan proyeksi Anda dapat memodifikasinya. Setelah didefinisikan membuatnya tersedia sebagai fungsi. Dengan cara ini Anda dapat menempatkan poin Anda sebagai lingkaran svg:
svg.append("circle").attr("r",5).attr("transform", function() {return "translate(" + projection([-75,43]) + ")";});
Itu akan membuat lingkaran di sekitar New York yang kasar. Anda kemudian dapat mengikat data yang memiliki atribut "lat" dan "long", dalam hal ini akan terlihat seperti ini:
svg.selectAll("circles.points")
.data(yourData)
.enter()
.append("circle")
.attr("r",5)
.attr("transform", function(d) {return "translate(" + projection([d.long,d.lat]) + ")";});
Fungsi proyeksi mengambil larik [panjang, lat] dan mengembalikan larik [x, y], yang cocok menjadi sintaks transformasi, translate (), atau Anda bisa membagi array untuk nilai x dan y.
Contoh di bawah ini menempatkan polys, garis, dan titik, dan mengambil titik dari csv dan memproyeksikannya ke peta, tetapi perhatikan bahwa itu mengubah elemen g dan menambahkan lingkaran ke elemen itu (Anda mungkin juga menginginkan label atau aspek lain ke situs, yang semuanya akan ditambahkan ke elemen g yang diproyeksikan):
https://gist.github.com/4414107
http://bl.ocks.org/d/4414107/