Suite

Comment obtenir un seul plus gros point dans un polygone ?

Comment obtenir un seul plus gros point dans un polygone ?


J'ai des classes d'entités surfaciques et ponctuelles. Chaque polygone a 2 points à l'intérieur. Pour la sortie, j'ai besoin d'un seul point avec la valeur la plus élevée. J'ai besoin d'intégrer cette étape dans ModelBuilder. J'avais une idée de l'itérateur, mais je n'en suis pas sûr car il pourrait avoir des problèmes avec des classes de fonctionnalités plus importantes et du matériel plus ancien. Alors je cherche un moyen de contourner ça.


J'aborde généralement des situations comme celle-ci en quelques étapes. Le processus général consiste à déterminer la valeur maximale dans chaque polygone, puis à déterminer quels points ont réellement cette valeur :

  • Joignez d'abord un identifiant unique des polygones aux points (à l'aide d'une intersection, d'une jointure spatiale, etc.). Il n'est pas nécessaire que ce soit OBJECTID, mais cela peut l'être.
  • Ensuite, exécutez des statistiques récapitulatives sur la sortie de cela. Utilisez l'identifiant unique que vous venez de joindre comme champ de cas et le champ de valeur qui vous intéresse comme champ statistique et maximum comme calcul.

Cela donnera une liste de polygones et la valeur maximale de ses points contenus.

  • Sur la sortie des statistiques récapitulatives et sur les points intersectés/joints, créez un nouveau champ « clé » en concaténant l'identifiant unique du polygone et la valeur (max) du point. Je configure normalement cela comme un champ de texte et les calcule comme suit (avec le type d'expression PYTHON_9.3)* :

    • Pour les points avec des identifiants de polygone :!POLYGONIDE ! + '-' + !VALEURPOINT!
    • Pour la sortie des statistiques récapitulatives :!POLYGONIDE! + '-' + !MAX_POINTVALUE !
  • Vous pouvez désormais joindre le tableau des statistiques récapitulatives à la couche de points à l'aide de cette nouvelle clé à l'aide du champ de jointure ou en créant simplement une jointure.

Les entités auxquelles un enregistrement est joint sont la valeur maximale dans chaque polygone et le reste peut être ignoré. Cela devrait fonctionner si vous avez plusieurs fonctionnalités avec la valeur maximale, mais dans ce cas, elles seront toutes jointes et il n'est pas possible de n'en sélectionner qu'une (puisqu'elles sont toutes techniquement maximales).

* : Une chose à surveiller lors du calcul de la clé est que si votre valeur ou votre identifiant de polygone est une valeur à virgule flottante, vous devrez peut-être spécifier un format lors de la conversion en chaîne (c.'{0:.0f}-{1:.0f}'.format(!POLYGONID!,!POINTVALUE!)plutôt.


Comment modifier uniquement les points extérieurs de ce nuage de points en une valeur différente ?

J'ai un nuage de points 3D avec les coordonnées XYZ provenant de nœuds sur un maillage FEA. Chaque nœud a également une 4ème valeur, qui dans cet exemple est utilisée pour lui donner une couleur. Voici une image des points tracés dans matplotlib :

La forme réelle est plus facile à voir lorsque j'importe le nuage de points dans le programme FEA :

La couleur bleue indique une valeur inférieure, le rouge une valeur supérieure. Mon problème est que je souhaite modifier les valeurs de couleur de la surface extérieure uniquement pour qu'elles soient plus élevées et non bleues. Idéalement, j'aimerais prendre la valeur de couleur la plus élevée des points qui l'entourent, mais si je pouvais simplement identifier les points les plus à l'extérieur (mais pas la surface supérieure et la surface inférieure), alors ce serait plus que suffisant et je pourrais partir de là . Le résultat final devrait ressembler à peu près à ceci :

J'ai essayé de rechercher les coordonnées entourant chaque point et s'il y a une coordonnée qui ne contient pas de point, je suppose que c'est de l'air, et donc puisque le point est en contact avec l'air, c'est un point de surface. Cela n'a pas fonctionné car les points sont espacés de manière irrégulière et j'obtiendrais donc des faux positifs de points de surface au centre du nuage de points.

J'ai essayé d'utiliser alphashape et de créer un polygone à partir des points les plus externes d'une tranche 2D, puis j'ai trouvé les sommets de ce polygone. Je créerais alors des cercles à ces points et si un point se trouve dans ce cercle, il est considéré comme un point de surface. J'ai ensuite itéré ce processus à travers chaque couche z. Cela ne fonctionnerait pas car il était beaucoup trop long à exécuter et il manquerait encore de grandes parties de la surface et remplirait complètement la vue de dessous avec du rouge.

J'ai posté un exemple reproductible minimum et un lien vers le fichier texte avec les valeurs XYZC. Merci pour toute aide que vous pouvez me donner.


5 réponses 5

Je suggère d'utiliser matplotlib contains_points()

S'appuyant sur la réponse de RemcoGerlich, voici une fonction validée :

Je pense que dessiner le polygone et le remplir est un bon début, vous aurez besoin de quelque chose comme ça de toute façon et ces algorithmes sont généralement affinés en C. Mais n'utilisez pas d'image RVB, utilisez une image noir/blanc, et utilisez numpy.where() pour trouver les pixels où c'est 1.

Selon cette question, la bibliothèque mahotas a une fonction fill_polygon qui fonctionne avec les tableaux numpy.

Je commence le code suivant à partir de votre fonction (je soustrairais aussi le minx et le maxx) mais notez que je ne peux pas du tout le tester, je ne suis pas sur ma machine de développement.

Vous pouvez utiliser une matrice numpy comme une image binaire, qui peut être utilisée avec Opencv par exemple ou d'autres librairies de traitement d'images, Solution 1 Donc une matrice dont la taille est L x H où

Comme entrée, nous avons votre liste de tuple(x,y) que vous avez donné ci-dessus quel nom est poly par example :

Nous avons donc maintenant une matrice de taille L x H remplie de 0, nous mettons maintenant 1 aux positions des points du polygone

Je pense que tu peux faire ça simplement

nous interprétons cela comme une image binaire (noir/blanc) sur laquelle est dessiné un contour Supposons que nous voulions détecter ce nouveau contour

Noter : poly2 contient une liste de points de votre polygone et de tous les points qui le composent, je veux dire tous les points de chaque sommet de votre polygone, ce dont vous avez besoin peut être utile !! vous pouvez utiliser cv2.CHAIN_APPROX_SIMPLE paramètre pour obtenir poly2 contenant uniquement les points d'extrémité des lignes de polygone qui est plus léger et qui était notre entrée :) important :le type de poly2 est numpy array ,sa forme est (n,1,2) et non (n,2)

Maintenant, nous dessinons ce contour sur cette image (matrice) et le remplirons aussi :)

maintenant nous avons une matrice où il y a 1 sur chacun des points formant et remplissant le polygone, "thickness=-1" a obligé à remplir ce contour, vous pouvez mettre set width = 1 pour n'avoir que les bordures si vous voulez translater, vous pouvez le faire en ajoutant un paramètre décalage(xtran,ytrans)

pour obtenir les indices de tous ces points, appelez simplement

Ce qui est plus malin c'est de transformer directement votre liste de points (poly) en un format de contour (poly2) et de la dessiner sur la matrice

et dessinez-le sur la matrice Matrix

Et obtenez la liste de ces points avec :

Joue avec épaisseur pour remplir ou non le polygone, voir solution 1 pour plus de détails.


En regardant les documents PIL ImageDraw, il semble que les polygones soient normalement référencés avec une liste de tuples (x, y). Ce que vous devez faire, c'est trouver les limites de votre polygone et définir une région d'intérêt autour de ces limites dans votre image et votre masque d'origine. Ensuite, vous pouvez simplement créer un tableau avec la taille de votre région et insérer l'image/le masque à partir de ces limites trouvées.

Un polygone ne s'étend jamais passé les points que vous définissez, donc trouver les valeurs minimales et maximales (x, y) définira votre région d'intérêt. Je pense que ce qui suit devrait fonctionner pour vous, avec ce qui précède à l'esprit, le code est assez explicite.


2 réponses 2

C'est une réponse incroyablement tardive, mais peut-être que je peux faire la lumière sur une solution. Le numéro « set » auquel vous faites référence est un identificateur de référence spatiale ou SRID. Pour les calculs lat/long, vous devriez envisager de régler ce paramètre sur 4326, ce qui garantira que les mètres sont utilisés comme unité de mesure. Vous devriez également envisager de passer à SqlGeography plutôt qu'à SqlGeometry, mais nous continuerons avec SqlGeometry pour le moment. Pour définir en bloc le SRID, vous pouvez mettre à jour votre table comme suit :

Pour un rayon unique, vous devez créer un rayon en tant qu'objet spatial. Par example:

STBuffer() prend le point spatial et crée un cercle (maintenant de type Polygone) à partir de celui-ci. Vous pouvez ensuite interroger votre ensemble de données comme suit :

Ce qui précède utilisera désormais tout index spatial que vous avez créé sur la [SpatialColumn] dans son plan de requête.

Il existe également une option plus simple qui fonctionnera (et utilisera toujours un index spatial). La méthode STDistance vous permet d'effectuer les opérations suivantes :

Enfin, travailler avec une collection de rayons. Vous avez quelques options. La première consiste à exécuter ce qui précède pour chaque rayon à tour de rôle, mais je considérerais ce qui suit pour le faire comme un seul :

La finale ci-dessus n'a pas été testée, mais je suis sûr à 99% que c'est à peu près là avec une petite quantité de peaufinage étant une possibilité. L'idéal de prendre la distance de rayon min dans la sélection est que si les rayons multiples proviennent d'un seul emplacement, si un point se trouve dans le premier rayon, il sera naturellement dans tous les autres. Vous allez donc dupliquer l'enregistrement, mais en regroupant puis en sélectionnant le min, vous n'en obtenez qu'un (et le plus proche).

J'espère que cela vous aidera, même si 4 semaines après avoir posé la question. Désolé de ne pas l'avoir vu plus tôt, si seulement il n'y avait qu'une seule balise spatiale pour les questions.


Personnaliser une palette

    PALETTE Cliquez sur le bouton pour l'atelier de palette. Il s'agit d'une icône dans la barre de menu affichant des bandes de couleur en diagonale. Une fenêtre apparaît qui affiche 15 carrés noirs et quelques boutons de choix.

Cliquez sur le carré noir numéroté "0", puis déplacez-vous vers le bouton clignotant près du mot "Red." Faites glisser ce bouton légèrement vers la droite pour que la valeur rouge soit augmentée à environ 100. Maintenant, allez sur les boutons Vert et Bleu et faites glisser eux à environ 225 et 255, respectivement. La case numéro 0 doit changer de couleur et devenir bleu-vert pâle. C'est la couleur que vous utiliserez pour indiquer la mer sur vos cartes, alors ajustez-la à votre guise.

Ensuite, cliquez sur le carré noir numéroté "1" et donnez-lui une couleur appropriée pour les terres basses près du rivage. Je privilégie un bronzage pâle.

À côté des cases noires se trouvent deux pointes de flèche, pointant vers le haut et vers le bas. Cliquez sur la flèche vers le bas et modifiez les numéros des cases noires jusqu'à ce que vous atteigniez le numéro 255. À l'aide des boutons de couleur, changez la case numéro 255 en vert forêt foncé. C'est la couleur qui sera peinte sur le dessus du Morne Diablotin.

Allez maintenant dans la zone de cette fenêtre appelée "fonction de mélange de la palette." Réglez l'ancre inférieure à 1 et l'ancre supérieure à 255 et cliquez sur le bouton Mélanger. Soudain, toutes les cases qui étaient noires obtiennent de nouvelles couleurs qui sont des interpolations linéaires des deux couleurs d'ancrage.

  • La nouvelle palette ne met pas le paysage au point. Il se fond si progressivement de la mer au sommet de la montagne qu'on n'a qu'une vague impression de la forme des collines.
  • Il y a une zone près du sommet du Morne Diablotin qui est tout simplement fausse. Fenêtre autour de la colonne 1000, rangée 1250 pour le voir. Il semble que quelques points de l'ensemble de données d'origine aient été enregistrés comme 3000 pieds trop courts. Le résultat est une sorte de cratère à flanc de montagne numérique.
  • Il y a des zones bleues à l'intérieur du littoral, dans des zones qui devraient être des terres. La zone la plus évidente est le marais derrière la péninsule de Cabrits.

    Ouvrez à nouveau l'Atelier de palettes sans fermer la carte que vous avez affichée. Passez par Fichier/Ouvrir pour obtenir la palette que vous venez de créer. (Rappelez-vous que lorsque l'IDRISI vous donne une zone de texte pour saisir un nom, vous pouvez double-cliquer dessus pour obtenir une liste des noms disponibles pour les fichiers qui existent déjà.)

Vous pouvez maintenant modifier la palette pour créer des contrastes plus nets. Je vous suggère de diviser la plage 1 à 255 en quatre ou cinq sous-plages, avec un mélange des valeurs basses aux valeurs élevées au sein de chacune d'entre elles. Par exemple, laissez la couleur 1 telle quelle, modifiez la couleur 50 pour qu'elle soit d'un vert vif et profond, puis mélangez de 1 à 50. Cela a-t-il un sens pour la garrigue côtière ?

Modifiez votre palette jusqu'à ce que vous ayez des gammes de couleurs qui vous conviennent. Ensuite, pour accentuer encore plus l'image, vous pouvez ajouter des lignes contrastées. Par exemple, essayez de rendre la couleur 51 rouge vif. Lorsque vous réaffichez, le nouveau rouge forme une ligne de contour. La figure 2, page 36 montre une palette qui accentue le terrain.


Étant donné que vous ne pouvez pas utiliser $skip et que $skiptoken utilise apparemment l'ID de l'élément, et compte tenu du fait que vous ne demandez qu'un très petit nombre d'éléments, pourquoi ne pas simplement prendre le $top=19 et couper le premier 9 dans votre code de réception ?

Si vous voulez les éléments avec un identifiant entre 10 et 19, vous pouvez utiliser l'option $filter :

Avec l'URL que vous utilisez actuellement :

Vous trouverez plus d'informations sur $filter ici.

Vous pouvez ignorer le jeton de l'API de repos pour obtenir les éléments de la liste comme vous le souhaitez. Mais assurez-vous que les éléments ne doivent pas être supprimés de la liste ou la plage peut varier l'ID de l'élément de liste. Par example


8. Tracer une seule forme sur une carte complète

Nous pouvons "fusionner" les deux fonctions précédentes et "tracer" une seule forme à lintérieur dune carte complète. Pour cela, écrivons une nouvelle fonction, où l'identifiant de forme est maintenant un paramètre d'entrée :

Tracer la comuna de Santiago en "red" :

Et si on veut "remplir" une seule forme avec une couleur précise ? Simple! Nous pouvons utiliser plt.fill pour cela. La fonction peut être réécrite :

Tracer la commune de "Las Condes" (id=0) en vert ('g') :


Tracer des cartes-paquets de cartes avec ggplot

Les principaux acteurs :

  • Le package de cartes contient de nombreux contours de continents, pays, états et comtés qui utilisent R depuis longtemps.
  • Le package mapdata contient quelques autres contours à plus haute résolution.
  • Le package maps est livré avec une fonction de traçage, mais nous choisirons d'utiliser ggplot2 pour tracer les cartes dans le package maps.
  • Rappelons que ggplot2 opère sur des trames de données. Par conséquent, nous avons besoin d'un moyen de traduire les données cartographiques dans un format de bloc de données que ggplot peut utiliser.

Cartes dans le package de cartes

  • Les cartes de package fournissent de nombreux contours et points de carte différents pour les villes, etc.
  • Quelques exemples : usa , nz , state , world , etc.

Créer des blocs de données à partir des contours de la carte

  • ggplot2 fournit la fonction map_data().
    • Considérez-le comme une fonction qui transforme une série de points le long d'un contour en un bloc de données de ces points.
    • Syntaxe : map_data("name") où « name » est une chaîne entre guillemets du nom d'une carte dans le package maps ou mapdata

    Ici, nous obtenons une carte des États-Unis à partir de cartes :

    Voici la carte du monde haute résolution centrée sur l'océan Pacifique à partir de mapdata

    La structure de ces trames de données

    Ceux-ci sont assez simples :

    • long est la longitude. Les choses à l'ouest du premier méridien sont négatives.
    • lat est la latitude.
    • ordre . Cela montre simplement dans quel ordre ggplot doit « relier les points »
    • région et sous-région indiquent quelle région ou sous-région entoure un ensemble de points.
    • grouper . C'est très important! Les fonctions de ggplot2 peuvent prendre un argument de groupe qui contrôle (entre autres) si les points adjacents doivent être connectés par des lignes. S'ils sont dans le même groupe, ils se connectent, mais s'ils sont dans des groupes différents, ils ne le font pas.
      • Essentiellement, avoir des points dans différents groupes signifie que ggplot "lève le stylo" lorsqu'il passe entre eux.

      Tracer la carte des États-Unis

      • Les cartes dans ce format peuvent être tracées avec le polygone geom. c'est-à-dire en utilisant geom_polygon() .
      • geom_polygon() a tracé des lignes entre les points et les "ferme" (c'est-à-dire trace une ligne du dernier point au premier point)
      • Vous devez mapper l'esthétique du groupe à la colonne du groupe
      • Bien sûr, x = long et y = lat sont les autres esthétiques.

      Carte noire simple

      Par défaut, geom_polygon() dessine sans couleur de ligne, mais avec un remplissage noir :

      Quel est ce coord_fixed() ?

      • Ceci est très important lorsque vous dessinez des cartes.
      • Il fixe la relation entre une unité dans le oui direction et une unité dans le X direction.
      • Ensuite, même si vous modifiez les dimensions extérieures du tracé (c'est-à-dire en modifiant la taille de la fenêtre ou la taille du fichier pdf dans lequel vous l'enregistrez (dans ggsave par exemple)), le ratio d'aspect reste inchangé.
      • Dans le cas ci-dessus, j'ai décidé que si chaque oui unité était 1,3 fois plus longue qu'une X unité, puis l'intrigue est sortie en regardant bien.
        • Une valeur différente pourrait être nécessaire plus près des pôles.

        Mess avec les couleurs de ligne et de remplissage

        Ici, pas de remplissage, avec une ligne rouge. Rappelez-vous, la valeur fixe de l'esthétique va dehors la fonction aes.

        Voici un remplissage violet, avec une ligne bleue.

        Ajouter des points à la carte

        Ajoutons des points noirs et jaunes à notre laboratoire et au NWFSC à Seattle.

        Voyez à quel point l'esthétique du groupe est importante

        Ici, nous traçons cette carte sans utiliser l'esthétique du groupe :

        Ce n'est pas bueno ! Les lignes sont des points de connexion qui ne doivent pas être connectés !

        Cartes d'état

        Nous pouvons également obtenir un bloc de données de polygones qui nous indiquent au-dessus des limites de l'état :

        Tracez tous les états, tous colorés un peu différemment

        C'est exactement comme ci-dessus, mais nous pouvons mapper le remplissage à la région et nous assurer que les lignes des frontières de l'État sont blanches.

        Tracez juste un sous-ensemble d'états dans les 48 contigus :

          Lisez à propos de la commande de sous-ensemble. Il fournit un autre moyen de sous-ensemble des trames de données (un peu comme l'utilisation de l'opérateur [ ] avec un vecteur logique).

        Nous pouvons l'utiliser pour récupérer uniquement CA, OR et WA :

        L'homme qui est laid !!

        • Je garde juste les gens sur leurs gardes. Qu'avons-nous oublié ici ?
          • grouper
          • coord_fixed()

          Remettons-les là-dedans :

          Phew! C'est un peu mieux !

          Zoomez sur la Californie et regardez les comtés

          Il est facile d'obtenir les données californiennes :

          Maintenant, obtenons également les lignes de comté là-bas

          Tracez d'abord l'état, mais abandonnons le quadrillage des axes et l'arrière-plan gris en utilisant le super-merveilleux theme_nothing() .

          Tracez maintenant les limites du comté en blanc :

          Obtenez quelques faits sur les comtés

          • Ce qui précède est plutôt cool, mais il semble que ce serait beaucoup plus cool si nous pouvions tracer des informations sur ces comtés.
          • Maintenant, je peux aller sur wikipedia ou http://www.california-demographics.com/counties_by_population et récupérer les données de population et de superficie pour chaque comté.
          • En fait, j'ai copié leur petit tableau sur Wikipedia et je l'ai enregistré dans data/ca-counties-wikipedia.txt . En toute divulgation, j'ai également modifié le nom de San Francisco de « Ville et comté de San Francisco » à « Comté de San Francisco » pour être comme les autres (et ne pas casser mon regex !)
          • Regardez cette regex amusante :

          Nous avons maintenant les nombres que nous voulons, mais nous devons les attacher à chaque point des polygones des comtés. Ceci est un travail pour inner_join du package dplyr

          Et enfin, ajoutez une colonne people_per_mile :

          Tracez maintenant la densité de population par comté

          Si vous aviez besoin d'un peu plus de marge de manœuvre dans le grand Golden State, cela vous montre où vous pouvez le trouver :

          • La densité de population à San Francisco est si grande qu'il est difficile de discerner les différences entre les autres régions.
          • C'est un travail pour une transformation d'échelle. Prenons le log-base-10 de la densité de population.
          • Au lieu de créer une nouvelle colonne qui est log10 du people_per_mile, nous pouvons simplement appliquer la transformation dans le gradient en utilisant l'argument trans

          Toujours pas génial

          Personnellement, j'aime plus de couleurs que ggplot n'en utilise dans son dégradé par défaut. À cet égard, je gravite davantage vers le dégradé de couleurs par défaut de Matlab. Pouvons-nous faire quelque chose de similaire avec ggplot ?

          Agrandir?

          Notez que l'échelle de ces cartes à partir des cartes de paquet n'est pas grande. Nous pouvons zoomer sur la région de la baie, et cela fonctionne en quelque sorte à l'échelle, mais si nous voulions zoomer davantage, ce serait difficile.

          • Ouah ! C'est un échec épique. Pourquoi?
          • Rappelons que geom_polygon() relie le point final d'un groupe à son point de départ.
          • Et le kicker : les fonctions xlim et ylim dans ggplot2 suppriment toutes les données qui ne se trouvent pas dans la zone de tracé.
            • Par conséquent, il existe de nouveaux points de départ et d'arrivée pour certains groupes (ou dans ce cas l'autorisateur de la ligne noire de Californie) et ces points sont connectés. Pas bon.

            Vrai zoom.

              Si vous souhaitez conserver toutes les données identiques mais simplement zoomer, vous pouvez utiliser les arguments xlim et ylim pour coord_cartesian() . Cependant, pour garder le rapport hauteur/largeur correct, nous devons utiliser coord_fixed() au lieu de coord_cartesian() .

            Cela coupe des éléments mais ne les supprime pas de l'ensemble de données :


            Évaluation de la précision

            Pour évaluer l'exactitude d'un classificateur, utilisez une ConfusionMatrix (Stehman 1997). L'exemple suivant utilise sample() pour générer des données d'apprentissage et de validation à partir d'une image de référence MODIS et compare des matrices de confusion représentant la précision d'apprentissage et de validation :

            Éditeur de code (JavaScript)

            Cet exemple utilise un classificateur de forêt aléatoire (Breiman 2001) avec 10 arbres pour réduire les données MODIS à la résolution Landsat. La méthode sample() génère deux échantillons aléatoires à partir des données MODIS : un pour l'apprentissage et un pour la validation. L'échantillon d'apprentissage est utilisé pour entraîner le classificateur. Vous pouvez obtenir une précision de resubstitution sur les données d'apprentissage à partir de classifier.confusionMatrix() . Pour obtenir l'exactitude de la validation, classez les données de validation. Cela ajoute une propriété de classification à la validation FeatureCollection . Appelez errorMatrix() sur la FeatureCollection classée pour obtenir une matrice de confusion représentant la précision de validation (attendue).

            Inspectez la sortie pour voir que la précision globale estimée à partir des données d'apprentissage est bien supérieure aux données de validation. La précision estimée à partir des données d'apprentissage est une surestimation car la forêt aléatoire est « ajustement » aux données d'apprentissage. La précision attendue sur des données inconnues est plus faible, comme l'indique l'estimation à partir des données de validation.

            Vous pouvez également prendre un seul échantillon et le partitionner avec la méthode randomColumn() sur les collections d'entités. Suite de l'exemple précédent :

            Éditeur de code (JavaScript)

            Vous pouvez également vous assurer que les échantillons d'apprentissage ne sont pas corrélés avec les échantillons d'évaluation. Cela pourrait résulter de l'autocorrélation spatiale du phénomène prédit. Une façon d'exclure les échantillons qui pourraient être corrélés de cette manière consiste à supprimer les échantillons qui se trouvent à une certaine distance de tout autre échantillon. Cela peut être accompli avec une jointure spatiale :

            Éditeur de code (JavaScript)

            Dans l'extrait précédent, notez que geometries est défini sur true dans sample() . Il s'agit de conserver les informations spatiales des points d'échantillonnage nécessaires pour une jointure spatiale. Notez également que tileScale est défini sur 16 . Cela permet d'éviter l'erreur « Limite de mémoire utilisateur dépassée ».

            Sauf indication contraire, le contenu de cette page est sous licence Creative Commons Attribution 4.0 et les exemples de code sont sous licence Apache 2.0. Pour plus de détails, consultez les règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses filiales.


            Voir la vidéo: Monikulmioiden alat ja kulmien summa