2017-05-11 2 views
1

J'ai une carte simple des États-Unis et j'essaie de tracer quelques points Lat Long de test. J'ai trouvé this block expliquant le processus mais j'ai du mal à convertir la syntaxe en v4. Même lorsque je cours le code exact dans le bloc, il lance les mêmes erreurs.Tracé Lat/Long sur la carte - D3.js v4

Je peux voir le d3.geoMercator() sorte de 'flattens' la carte. Est-ce nécessaire? Cela semble trivial mais j'aime la courbure naturelle de la carte US sans cela.

Curieux ce que l'approche correcte est, et si une partie du code est même nécessaire. En particulier, cette partie:

projection //Added from block -- What is this doing? 
    .scale(1000) //Added from block 
    .center([-106, 37.5]) //Added from block 

Mon code avec les ajouts cassés, j'ai ajouté des commentaires au code ajouté: https://jsfiddle.net/fettww66/2/

Répondre

1

Dans ce bl.ock vous LIÉ, il vous suffit deux changements pour faire fonctionner avec D3 v4:

  • var projection = d3.geo.mercator()var projection = d3.geoMercator()

  • var path = d3.geo.path()var path = d3.geoPath()

Voici les mises à jour à l'aide bl.ocks D3 v4: http://bl.ocks.org/anonymous/d0b530924ef2aae3436840a1dbb3a39f

En ce qui concerne votre violon, la question est très simple: vous utilisez un déjà projeté JSON . Il suffit de définir la projection à null:

.projection(null) 

Voici le violon mis à jour: https://jsfiddle.net/vypu9qwr/

+0

Merci, @Gerardo. Le code fonctionne bien, cependant, le Lat/Long listé dans la variable de code 'aa' a le point d'être placé à San Francisco. Quand je cours le code, je le place dans l'ouest de l'Utah. J'ai trouvé que je peux manipuler le 'projection.scale (1000) .center ([- 106, 37.5])' et il déplacera le point. Je devine que je dois éditer ceci à une certaine valeur correcte. Je ne sais pas ce que c'est. Voici le violon actuel: [https://jsfiddle.net/Lv5knc0n/](https://jsfiddle.net/Lv5knc0n/) –

+0

Eh bien, j'ai répondu ** deux ** questions de votre poste (quels changements sont nécessaires pour l'utilisation D3 v4 et pourquoi le violon ne fonctionnait pas). Il semble que vous avez encore plus de questions que cela! Désolé, c'est trop, j'ai une politique de ne pas répondre à un post qui a plusieurs questions. –

+2

Vous pouvez toujours faire une * nouvelle * question, cependant. De cette façon, vous gardez 1 problème par message (en fait, les gens peuvent voter de façon serrée comme * trop large * pour les questions dans lesquelles OP pose plusieurs problèmes). –