Giter Site home page Giter Site logo

ignf / geoportal-sdk Goto Github PK

View Code? Open in Web Editor NEW
31.0 9.0 13.0 524.06 MB

French Geoportal SDK Javascript

License: Other

Shell 0.31% JavaScript 43.67% CSS 0.23% HTML 55.10% PHP 0.45% Handlebars 0.24%
geoportail openlayers itowns 3d geoportal-extensions geoportal-access-lib sdk

geoportal-sdk's Introduction

Build CeCILL License DeepScan grade

Kit de Développement (SDK) Web Géoplateforme

Le Kit de développement - ou SDK - Web Géoplateforme est une librairie JavaScript mise à disposition sous licence libre par l’IGN permettant d’ajouter simplement dans un site web une carte utilisant les ressources de la Géoplateforme.

Le SDK est disponible sous deux versions :

geoportal-sdk's People

Contributors

azarz avatar eldk avatar elias75015 avatar gcebelieu avatar lboulanger avatar lowzonenose avatar pjjmunier avatar vcoindet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoportal-sdk's Issues

Affichage des informations (popup) sur un 'feature' de type KML

On peut cliquer sur des features de type KML pour y visualiser les informations dans une popup.

Au niveau de l'affichage, on choisit de ne pas afficher certaines properties telles que :
'geometry', 'styleUrl' et 'value'...

Explication :

Il n'est pas possible de supprimer des properties sous OL3,

that this changes any existing properties and adds new ones (it does not remove any existing properties)

et, OL3 ne nous permet de surcharger le mécanisme interne...

Et depuis la version 3.18.1 d'Openlayers, on rencontre quelques properties parasites sur la gestion des balise extendedData .

La structure KML suivante :

<ExtendedData>
  <Data name="comment">
    <value>commentaire !</value>
  </Data>
</ExtendedData>

Avant, elle produisait la structure des properties du feature

{
  name:...
  geometry:...
  comment: "commentaire !"
}

alors que maintenant, on a :

{
  name:...
  geometry:...
  comment: "commentaire !"
  value: "commentaire !"
}

On a donc une propertie parasite : value !?

cf. https://developers.google.com/kml/documentation/extendeddata

Incompatibilité des styles embarqués dans le GeoJSON entre la 2D et la 3D

Transmettre point arrivée et point de départ, et le(s) point(s) d'étape(s) de l'itinéraire pour afficher les markers liés sur l'itinéraire en 3D

image

- Attention, la gestion des styles embarqués est différentes entre la 2D et la 3D sur le format GeoJSON.
- > Ceci va provoquer une incompatibilité lors de l'enregistrement des tracés de calcul dans l'espace personnel

Solution envisagée (provisoire) :

faire cohabiter les 2 types de styles

Solution pérenne :

normaliser les styles embarqués pour le points (ou circle) et les icons (ou marker)

Originally posted by @lowzonenose in #100 (comment)

Le module de géocodage inverse demande un paramètre searchGeometry

Bonjour,

Avec la version 3.2.18 de l'API Extension Geoportail OpenLayers, le module 'Gp.Services.reverseGeocode' nécessite un paramètre 'searchGeometry' qui est sensé être optionnel selon la doc du service.

Votre environnement

  • Version de l'API : 3.2.18
  • Nom du navigateur et sa version : Firefox 107.0
  • Operating System et sa version (desktop ou mobile) : Windows 10 desktop
  • Lien eventuel vers votre projet :

Type d'issue

[x] Report de bug
[ ] Requête d'une nouvelle fonctionnalité

Contexte

Je passe bien un lon et un lat dans mes appels, mais sans 'searchGeometry' ou avec un 'searchGeometry' à {}, j'obtiens l'erreur :
Uncaught Error: Parameter(s) 'searchGeometry' missing

Doc du service 'reverse', param 'searchgeom' : "Ce paramètre n'est pas obligatoire pour des raisons de rétro-compatibilité. Si searchGeom n'est pas utilisé alors les paramètres lon et lat doivent l'être et on parle de point de recherche. "

Je suis passé de la version 3.2.14 à 3.2.18 de l'API JS.

Pour les bugs : Etapes à suivre pour le reproduire

  1. Implémenter une utilisation du module Gp.Services.reverseGeocode dans le code Javascript
  2. Faire un appel avec lat et lon renseignés

Comportement attendu

Le module 'Gp.Services.reverseGeocode' ne devrait pas nécessiter de paramètre 'searchGeometry' si lon et lat sont renseignés, comme auparavent

Comportement actuel

Le module 'Gp.Services.reverseGeocode' nécessite un paramètre 'searchGeometry' dûment renseigné dans tous les cas

Possible Cause/Correction/Solution technique (facultatif)

Dans le code de l'API :
if(t.serverUrl=t.serverUrl||"https://wxs.ign.fr/calcul/geoportail/geocodage/rest/0.1/reverse",T.apply(this,[t]),!t.searchGeometry)throw new Error(_.getMessage("PARAM_MISSING","searchGeometry"));

Dépendances manquantes?

Bonjour,

J'essaye d''ajouter @ignf-geoportal/sdk-2d avec npm mais il semble qu'il manque des dépendances.

These relative modules were not found:

  • ../package in ./node_modules/@ignf-geoportal/sdk-2d/src/SDK2D.js
  • ../res/OpenLayers/OlMap.css in ./node_modules/@ignf-geoportal/sdk-2d/src/SDK2D.js

SDK 3D - setXYCenter - proj4 undefined

Scenario :

  • Charger la carte avec un centre qui a la propriété projection :
Gp.Map.load(
"map",
{
...  
    center : {
             x : 6.242212,
             y : 44.811339,
             projection : "CRS:84"
         },
...
}

Résultat :

Au chargement de la carte, on a l'erreur "proj4 is not defined". et le globe ne se charge pas.

bug_proj4

Cause :

Il semblerait que le changement sur la fonction setXYCenter de IT.js (lignes 701-710) y soit pour quelque chose (bien que ca ne marchait peut etre déjà pas avant) : b7bbd14

bug-proj4-git

Accès direct au sdk ne récupère pas itowns.js

Si on fait :

<script src="https://ignf.github.io/geoportal-sdk/latest/dist/mixIt/GpOL3Itowns-src.js"></script>

Comme indiqué dans le README :

Vous pouvez aussi choisir d’utiliser des fichiers hébergés en ligne, pour y accéder directement, lors de vos tests par exemple. Cependant, pour une utilisation en production, nous vous conseillons de télécharger ces fichiers et de les héberger vous-même, sur le même serveur qui héberge votre application.
Par exemple sur Github Pages :
http://ignf.github.io/geoportal-sdk/latest/dist/mixIt/GpOL3Itowns.js
http://ignf.github.io/geoportal-sdk/latest/dist/mixIt/GpOL3Itowns.css
http://ignf.github.io/geoportal-sdk/latest/dist/mixIt/GpOL3Itowns-src.js
http://ignf.github.io/geoportal-sdk/latest/dist/mixIt/GpOL3Itowns-src.css

On a en console :
http://localhost/api-v3-ahn-git/geoportal-sdk/dist/mixIt//itowns.js net::ERR_ABORTED

Effectivement, le itowns.js distant n'est pas correctement récupéré

https://ignf.github.io/geoportal-sdk/latest/dist/mixIt/itowns.js

Définir un style par défaut pour les couches vecteur (KML, GPX, GeoJSON)

Lorsqu'on ajoute des couches GPX ou encore des couches KML sans style, c'est le style par défaut de la librairie sous-jacente qui s'applique, qui est parfois peu lisible.
Le SDK pourrait définir un style par défaut pour l'ajout de ces couches, par exemple :

'strokeColor': '#002A50',
'strokeWidth': 3,
'polyStrokeColor': '#002A50',
'polyStrokeWidth': 3,
'polyFillColor': '#00B798',
'polyFillOpacity': 0.5

Evolution : permettre de paramétrer ce style par défaut, lors de l'ajout de couche par exemple (dans les layersOptions)

Impossible de compiler après l'ajout du package @ignf-geoportal/sdk-2d

J'utilisait avant la version Geoportal-sdk de npm qui marchait correctement. J'ai besoin de mettre à jour vers la nouvelle version du SDK. Mais lorsque j'installe le package par NPM j'ai plein d'erreurs de dépendances.

J'ai ajouté les dépendances
"geoportal-extensions-openlayers": "^2.1.2",
"itowns": "^2.9.0",
"openlayers": "^4.6.5",

Toujours des erreurs de modules non résolus comme :
Request
Xmldom

J'ai ajouté les modules suivants
"@types/request": "^2.48.1",
"@types/xmldom": "^0.1.29",

J'ai ensuite plein d'autres erreurs
ERROR in ../node_modules/aws-sign2/index.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\aws-sign2'
ERROR in ../node_modules/ecc-jsbn/index.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\ecc-jsbn'
ERROR in ../node_modules/http-signature/lib/verify.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\http-signature\lib'
ERROR in ../node_modules/http-signature/lib/signer.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\http-signature\lib'
ERROR in ../node_modules/request/lib/helpers.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\lib'
ERROR in ../node_modules/request/lib/hawk.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\lib'
ERROR in ../node_modules/request/lib/oauth.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\lib'
ERROR in ../node_modules/request/node_modules/aws4/aws4.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\node_modules\aws4'
ERROR in ../node_modules/request/node_modules/oauth-sign/index.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\node_modules\oauth-sign'
mERROR in ../node_modules/sshpk/lib/fingerprint.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/signature.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/private-key.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/certificate.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/identity.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/key.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/utils.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/dhe.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib'
ERROR in ../node_modules/sshpk/lib/formats/ssh-private.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib\formats'
ERROR in ../node_modules/sshpk/lib/formats/pem.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib\formats'
ERROR in ../node_modules/sshpk/lib/formats/openssh-cert.js
Module not found: Error: Can't resolve 'crypto' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\sshpk\lib\formats'
ERROR in ../node_modules/request/lib/har.js
Module not found: Error: Can't resolve 'fs' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\lib'
ERROR in ../node_modules/forever-agent/index.js
Module not found: Error: Can't resolve 'http' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\forever-agent'
ERROR in ../node_modules/http-signature/lib/signer.js
Module not found: Error: Can't resolve 'http' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\http-signature\lib'
ERROR in ../node_modules/request/request.js
Module not found: Error: Can't resolve 'http' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request'
ERROR in ../node_modules/tunnel-agent/index.js
Module not found: Error: Can't resolve 'http' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\tunnel-agent'
ERROR in ../node_modules/forever-agent/index.js
Module not found: Error: Can't resolve 'https' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\forever-agent'
ERROR in ../node_modules/request/request.js
Module not found: Error: Can't resolve 'https' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request'
ERROR in ../node_modules/tunnel-agent/index.js
Module not found: Error: Can't resolve 'https' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\tunnel-agent'
ERROR in ../node_modules/forever-agent/index.js
Module not found: Error: Can't resolve 'net' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\forever-agent'
ERROR in ../node_modules/request/node_modules/tough-cookie/lib/cookie.js
Module not found: Error: Can't resolve 'net' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\node_modules\tough-cookie\lib'
ERROR in ../node_modules/tunnel-agent/index.js
Module not found: Error: Can't resolve 'net' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\tunnel-agent'
ERROR in ../node_modules/request/node_modules/mime-types/index.js
Module not found: Error: Can't resolve 'path' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request\node_modules\mime-types'
ERROR in ../node_modules/forever-agent/index.js
Module not found: Error: Can't resolve 'tls' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\forever-agent'
ERROR in ../node_modules/tunnel-agent/index.js
Module not found: Error: Can't resolve 'tls' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\tunnel-agent'
ERROR in ../node_modules/request/request.js
Module not found: Error: Can't resolve 'zlib' in 'C:\temp\sources\Hebert.Applications.Gsica\Hebert.Applications.Gsica\node_modules\request'

Avez-vous une liste des dépendances à installer car je n'arrive plus à utiliser les services geoportail avec la nouvelle version ?

Merci d'avance

PB chargement couche WFS avec le SDK version 1.2.0

Cf. discussion sur le forum : https://www.developpez.net/forums/d1866592/applications/sig-systeme-d-information-geographique/ign-api-geoportail/pb-d-affichage-couches-wfs-sdk-1-2-0-a/

Je confirme le constat :

la même configuration de layersOptions :

layersOptions : {
                 "BDPARCELLAIRE-VECTEUR_WLD_BDD_WGS84G:commune" : {
                     format : "WFS",
                     url : "https://wxs.ign.fr/APIKEY/geoportail/wfs",
                     typeNames : "BDPARCELLAIRE-VECTEUR_WLD_BDD_WGS84G:commune"
                 },
}

Pour une couche WFS entraine un affichage avec le SDK 1.0.0 et pas avec la dernière version (1.2.0) du SDK.

Avec ce dernier, une requête est bien envoyée et le service répond mais pas d'affichage. On a le message suivant dans la console :

AssertionError: Assertion failed. See https://openlayers.org/en/v4.6.5/doc/errors/#36 for details.

Affichage d'attributs non désirés dans les popups associées aux features

Signalé sur le forum pour des fichiers KML :

https://www.developpez.net/forums/d1617362/applications/sig-systeme-d-information-geographique/ign-api-geoportail/sdk-geoportail-couche-kml/#post9009523

des attributs "styleUrl" sont affichés dans la popup alors qu'ils sont "internes" au format KML. Il ne faudrait pas les afficher dans les popups de features.

Je note aussi la présence systématique de l'attribut : "extensionsNode_ : undefined" pour les features des fichiers GPX.

Visible :

https://www.geoportail.gouv.fr/carte?c=2.091951370239258,48.77734714570491&z=14&l0=ORTHOIMAGERY.ORTHOPHOTOS::GEOPORTAIL:OGC:WMTS(1)&d1=1369526(1)&permalink=yes

Disparition de l'image "closer" permettant de fermer les popups

En utilisant le SDK 2D version 1.2.0, il semblerait qu’une image a disparu : la croix permettant de fermer les popups.
J’ai l’impression qu’elle a été oubliée dans le passage des images en base64 (Apparemment, le répertoire img/ ne fait plus partie du packaging du SDK 1.2) ?

missing-popup

404-emeraud

ajout d'une couche avec position=0 : pas bien pris en compte avec la librairie OpenLayers

Par exemple si on souhaite ajouter les photographies aériennes SOUS la couche des cartes IGN :

map.addLayers(
  {
     'GEOGRAPHICALGRIDSYSTEMS.MAPS': {
        position : 1,
     },
     'ORTHOIMAGERY.ORTHOPHOTOS': {
        position : 0
     }
  }
);

=> les photographies aériennes se placent quand même par dessus les cartes IGN : le paramètre position=0 n'est pas correctement pris en compte.

En cause : le mécanisme d'OpenLayers qui ne permet pas de différencier la valeur par défaut du zIndex d'une couche : qui vaut zéro (lorsqu'aucun zIndex n'est spécifié pour la couche), et le cas où on a explicitement spécifié un zIndex = 0 pour une couche. Le contrôle LayerSwitcher, lorsqu'il est présent dans la carte, cherche à réordonner correctement les couches mais ne sait pas distinguer une couche ajoutée sans zIndex (donc qui doit s'ajouter par dessus) et une couche avec zIndex=0 (qui doit s'ajouter en dessous des autres).

Le paramètre gfiFormat n'est pas pris en compte

Lors de l'ajout d'une couche WMS, les valeurs transmises pour le format de sortie du GetFeatureInfo ne sont pas prises en compte : toutes les requêtes sont systématiquement envoyées avec le paramètre INFO_FORMAT ayant pour valeur : "text/html".

  • Pour reproduire :

Dans l'exemple : samples/ol3/ol3-gfi.html changer la valeur du paramètre gfiFormat pour la couche UTILITYANDGOVERNMENTALSERVICES.IGN.POI.ENSEIGNEMENTPRIMAIRE => à l'exécution les requêtes GFI envoyées sur cette couche restent en text/html.

Erreur HTTP 405 à l'appel du fichier autoconf

Bonjour,

L'affichage de la carte ne fonctionne plus. L’erreur est subite. Il semblerait que le call à l'autoconf n'abouti pas. Il résulte une 405

MicrosoftTeams-image

Je vous remercie.

Votre environnement

Peut importe la version du package, le problème est le même. (Même avec la dernière release en date, la 3.5.0)

Type d'issue

[x] Report de bug
[ ] Requête d'une nouvelle fonctionnalité

Possible Cause/Correction/Solution technique (facultatif)

Soit votre backend a un problème, soit il a évolué et le front n'est pas à jour

Externalisation de jaguarjs-jsdoc

Actuellement jaguarjs-jsdoc est embarqué dans le code et modifié pour les besoins du projet.
L'objectif est de supprimer la copie (modifiée) de jaguarjs-jsdoc présente dans le code. L'installation de jaguarjs-jsdoc et la modification de son code doit se faire lors du

npm install

Les modifications identifiées de jaguarjs-jsdoc sont:

  • la creation d'un fichier static/styles/sfc.css
  • la modifications du fichier tmpl/layout.tmpl (import de sfc.css, ajout de headers...)
  • l'ajout d'un dossier avec les images static/images

Les points durs relevés sont:

  • configuration de jaguar (fichier jsdoc.json) pour obtenir le même rendu (theme?)
  • la fonction GP.Map.load() n'apparaît pas dans l'index de la doc (l'interpretation du mot clé @module semble différente)

le paramétrage du parser KML OL3 empêche l'affichage des labels des ponctuels

Lorsqu'on ajoute une couche KML, on paramètre en dur le parser KML avec l'option showPointNames à false :

https://github.com/IGNF/geoportal-sdk/blob/master/src/ol3/OL3.js#L1650

cela empêche l'affichage des labels associés à des ponctuels, comme remarqué dans cette discussion du forum :

http://www.developpez.net/forums/d1617362/applications/sig-systeme-d-information-geographique/ign-api-geoportail/sdk-geoportail-couche-kml/#post8834264

Quelle est la raison de ce paramétrage ? Il faudrait dans tous les cas permettre de passer ce paramètre à true.

PB de compatibilité du controle GFI avec modifyControls

  • version 1.0.0 du SDK,

  • Exemple : samples/ol3/ol3-interaction.html

  1. Cocher "enable feature selection" : la sélection des features fonctionne sur la carte 👍
  2. Décocher "enable feature selection" : on ne peut plus sélectionner les features sur la carte (normal) mais le clic sur la carte provoque des erreurs dans la console :

error-clic

  1. Cocher a nouveau "enable feature selection" : la sélection des features ne fonctionne plus et on a la même erreur que précédemment dans la console

Rendre possible l'ajout / suppression de markers après création de la carte

Le loader du SDK permet de positionner des markers sur la carte à l'initialisation. Cependant, une fois la carte créée, il est impossible d'en rajouter de nouveaux, de les modifier ou de les supprimer.

Il faudrait, à l'instar des méthodes pour manipuler les controles et les layers proposer des méthodes permettant de faire de même avec les markers.

NB : à la différence des Layers et des Controls, il n'y a pas de notion d'identifiant associé à un marker dans la propriété markersOptions. L'approche serait plutôt de proposer des getter et setter travaillant sur le tableau des markers :

map.getMarkersOptions() : retourne un Array de Gp.MarkerOptions (ceux de la carte en cours)
map.setMarkersOptions(Array<Gp.MarkerOptions>) : remplace les markers de la carte par ceux passés en paramètres

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.