当前位置:网站首页>Divicon est toujours utilisé dans le leaflet de l'ère H5?
Divicon est toujours utilisé dans le leaflet de l'ère H5?
2022-06-12 23:42:00 【Bibliothèque d'armes SIG】
Il y a quelque temps.《leafletComment charger1010 000 données》Article de,Certains camarades de classe ont réagiCanvas-MarkersLe plugin ne supporte pasDivIcon.On va parler aujourd'hui,Pourquoi ce plugin ne supporte pasDivIcon,Et comment utiliserH5DeCanvasCaractéristiques,AvantDivIconC'est possible. Étiquettes Et Dimensions textuelles Fonction.
Vieille règle,Commencez par l'image.:
Fonction d'étiquetage

Fonction de dimension de texte

Pourquoi ne pas soutenirDivIcon
Canvas-MarkersLe plugin a été créé pour,Problèmes de performance de la présentation de données en vrac,En utilisantH5MoyenneCanvasPour dessiner commeMarker,Amélioration des performances de présentation.Mais ce plugin ne prend actuellement en charge queIcon,Non pris en chargeDivIcon.
La raison pour laquelle ,Parce queDivIcon Le principe de mise en œuvre de HTMLAjouter à la pageDOMÉlément, Et sur la carte 、 Modifications constantes lors de l'échelle DOMPropriétés de l'élément, Et beaucoup d'ajouts et de modifications DOM L'élément réduit les performances d'affichage du navigateur ,Des phénomènes tels que le blocage se produisent.
Si vous utilisezCanvas-Markers Continuer à utiliser après DivIcon, .C'est l'équivalent de la bande passante Gigabit mise à jour du réseau , Toujours avec le routeur 100 mégaoctets précédent .À ce moment - là.DivIcon Comme ce routeur de 100 mégaoctets , Devenir l'endroit le plus étroit du passage , Devient un goulot d'étranglement .
Si ce n'est pas le cas,DivIcon Ce vieux routeur , Y a - t - il un nouveau routeur ?
Oui.!Mais ça dépend..
En temps normal,AvecDivIcon Habituellement pour réaliser Fonction d'étiquetage Et Dimensions textuelles Fonction
Fonction d'étiquetage:

Fonction de dimension de texte:

Dans les deux cas,leafletTous.Canvas Une solution pour .
Fonction d'étiquetage
Comme indiqué ci - dessus,Canvas-Markers Le plugin ne prend actuellement en charge que IconIcône du type, Regardez son Code et vous verrez ,En fait...,Il utiliseIcon C'est juste IconComme unObjectAllez., Utilisé uniquement pour transmettre le paramètre , Ça n'a pas marché IconFonctions internes.Parce queIconIntérieur,A également créé unimgTypeDOMÉlément,EtDivIconC'est pareil, Beaucoup d'ajouts affectent les performances d'affichage du navigateur .
Canvas-MarkersLe plug - in passe parIcon Obtenir des paramètres tels que l'adresse de l'image et la position offset de l'image ,Et utiliserCanvas Pour dessiner des images .
L'étiquette se compose de deux parties , Boîte de fond et texte , La boîte de fond est généralement une image .Canvas-Markers Le plugin peut déjà charger des images , Il faut juste qu'il supporte le texte , Et peut contrôler le style et la position du texte , La fonction d'étiquetage est maintenant disponible .
Ouvre.Canvas-MarkersCode du plug - in, Ajouter une méthode pour dessiner le texte à l'emplacement ci - dessous .

Trois autres positions dans la figure ci - dessous , Ajouter un appel à la nouvelle méthode ci - dessus

De cette façon, la fonction d'étiquetage peut être réalisée ,Voir l'effet

Aspects de performance,Soutien maximal10 Environ 10 000 données .
Fonction de dimension de texte
Je suisgithubRecherche en hautleaflet+textMots clés, En regardant devant les résultats 20 Bibliothèques de codes ,J'ai trouvé. LabelTextCollision Ce plugin.
LabelTextCollision Le but de la création du plugin , Est de réaliser la fonction d'évitement automatique de l'annotation de texte ,La mise en œuvre estCanvas, La fonction d'annotation de texte est un problème qu'elle résout avec .

Au moment du test, J'ai trouvé un problème ,110 000 données, En zoomant sur la carte , L'affichage est fluide , Mais en zoomant sur la carte , Il y aura un phénomène de blocage , Et plus la carte est agrandie , Plus le carton est puissant .
En général, lorsque vous chargez de grandes quantités de données , Plus la carte est réduite, plus la carte est cartographiée , Plus la carte est agrandie, plus elle est fluide . Mais ce plugin est l'inverse ,Pourquoi??
Spéculations personnelles,Ce genre de problème, En grande partie parce que les données ne sont pas filtrées en fonction de la plage d'affichage à l'écran , Sans filtre, les données qui ne sont pas affichées à l'écran sont ajoutées .
Ce plug - in permet d'éviter l'affichage de texte , Plus vous zoomez sur la carte , Plus les données sont centralisées sur l'écran , Plus de texte est automatiquement évité , Moins de texte sera affiché , Plus la présentation est fluide .
Plus vous zoomez sur la carte , Plus les données sont dispersées sur l'écran , Moins il y a de texte pour l'évitement automatique , Plus de texte sera affiché , S'il n'y a pas de filtre , L'exposition s'emboîtera de plus en plus .
Regardez son code , Ça confirme mon hypothèse , Je n'ai pas trouvé , Code pour limiter l'affichage en dehors de la zone de l'écran .
Alors on va l'ajouter , Ajoutez un jugement sur la plage d'affichage de l'écran à deux endroits dans la figure suivante , Afficher uniquement les données actuellement visibles .

Essaie encore.,Ha Ha!,C'est bon.

Testé.,Après optimisation,Peut être chargé5 Environ 10 000 données .
Plus de scénarios
Voici une liste deDivIcon Deux scénarios d'utilisation courants ,Et comment l'utiliserCanvas Des solutions pour améliorer les performances de présentation , Si tu avais DivIcon Autres scénarios d'utilisation pour ,Laissez un message ci - dessous, Nous discutons ensemble de la solution .
Résumé
- Canvas-Markers Le but du plugin est de résoudre , Problèmes de performance lors de la présentation de données en vrac .
- DivIcon Le principe de mise en œuvre est que HTMLAjouter à la pageDOMÉlément, Grand nombre d'ajouts et de modifications DOM Les éléments abaissent les performances de présentation du navigateur .
- En partant du point de vue de l'amélioration des performances de présentation ,Canvas-Markers Le plug - in ne devrait pas prendre en charge DivIcon.
- AvecDivIcon, .Habituellement pour les fonctions d'étiquetage et d'annotation de texte , Ces deux fonctions ont Canvas Une solution pour .
- C'est exact.Canvas-Markers Le plugin est optimisé , Ajouter une interface texte ,Peut être remplacéDivIcon Réaliser la fonction d'étiquetage .
- LabelTextCollision Le plug - in peut réaliser la fonction d'évitement automatique de l'annotation de texte ,Ça marche.CanvasMode de réalisation,Peut être remplacéDivIcon Réaliser la fonction de dimension de texte .
- LabelTextCollision Plugin quand la carte est agrandie , Ne peut montrer que 1 Environ 10 000 données , Optimisé pour 5 Environ 10 000 données .
Exemple en ligne
Fonction d'étiquetage http://gisarmory.xyz/blog/index.html?demo=diviconError-CanvasMarker
Fonction de dimension de texte http://gisarmory.xyz/blog/index.html?demo=diviconError-LabelTextCollision
Code source
Fonction d'étiquetage http://gisarmory.xyz/blog/index.html?source=diviconError-CanvasMarker
Fonction de dimension de texte http://gisarmory.xyz/blog/index.html?source=diviconError-LabelTextCollision
Adresse originale:http://gisarmory.xyz/blog/index.html?blog=diviconError
Attention《GISArsenal》Numéro public, Obtenez plus de qualité dès le début GISArticle (s).

Adopté dans cet article Partage des connaissances signature-Utilisation non commerciale-Partager de la même façon 4.0 Accord international de licence Pour obtenir une licence.Bienvenue à la réimpression、Utiliser、Republish,Mais assurez - vous de garder la signature de l'article《GISArsenal》(Contient des liens: http://gisarmory.xyz/blog/),Ne pas utiliser à des fins commerciales,Les oeuvres modifiées sur la base de cet article doivent être publiées sous la même licence.
边栏推荐
- [opencv learning] perspective transformation matrix
- [North Asia data recovery] data recovery cases in which the partitions disappear and the partitions are inaccessible after the server reinstalls the system
- CS for mobile security [nethunter]
- 2202-簡曆制作
- Based on three JS offshore wind power digital twin 3D effect
- Examination questions and online simulation examination for safety management personnel of hazardous chemical business units in 2022
- Is the stock account opened by qiniu Gang safe and reliable?
- Novice must see! How rust beginners write gear smart contracts (1)
- [opencv learning] small ticket recognition based on perspective transformation and OCR recognition
- 同花顺开证券账户怎么样?到底安不安全呢
猜你喜欢

CST learning: four element array design of circular patch antenna (II) array formation and combination results

Don't write about the full screen explosion, try the decorator mode, this is the elegant way!!

2022 questions d'examen pour le personnel de gestion de la sécurité de l'unit é de gestion des produits chimiques dangereux et examen de simulation en ligne

How to get Matplotlib figure size

模型过拟合-解决方案(二):Dropout

How does idea switch the interface to Chinese
![[redis sentinel] failed listening on port 26379 (TCP) & sentinel mode no response problem solved](/img/0e/d734cd835d44361d6d93cc1be81c98.jpg)
[redis sentinel] failed listening on port 26379 (TCP) & sentinel mode no response problem solved

Shardingsphere-proxy-5.0.0 deployment table implementation (I)

Colab tutorial (super detailed version) and colab pro/colab pro+ usage evaluation

妙才周刊 - 5
随机推荐
[opencv learning] perspective transformation matrix
Automatically obtain the position offset of member variables inside the structure
自动获取结构体内部成员变量的位置偏移
數組
2022 questions d'examen pour le personnel de gestion de la sécurité de l'unit é de gestion des produits chimiques dangereux et examen de simulation en ligne
36 krypton's debut | "osogena" won nearly ten million angel rounds of financing. The original DLR scientists of German Aerospace Research and development system modeling and simulation CAE software PA
Online examination questions for September examination of financial management
Model over fitting - solution (II): dropout
scala中的隐式转换和隐式参数讲解与实践
Xi'an Jiaotong 22nd autumn e-commerce technology online expansion resources (IV) [standard answer]
SAP UI5 如何通过 manifest.json 文件定义第三方库依赖关系
Design a MySQL table for message queue to store message data
〖Kubernetes指南④〗Pod快速入门
CV - baseline summary (development history from alexnet to senet)
Basic operations of dict and set
Start blogging
KConfig
2022 electrician (elementary) operation certificate examination question bank and online simulation examination
TCP与UDP
Message queue directory