Maison interface Web js tutoriel Utilisation de JavaScript et de Tencent Maps pour implémenter la fonction de dessin de rectangle de carte

Utilisation de JavaScript et de Tencent Maps pour implémenter la fonction de dessin de rectangle de carte

Nov 21, 2023 pm 05:59 PM
javascript Carte Tencent Dessin rectangulaire

Utilisation de JavaScript et de Tencent Maps pour implémenter la fonction de dessin de rectangle de carte

Utilisez JavaScript et Tencent Maps pour implémenter la fonction de dessin de rectangles de carte

Tencent Maps est l'une des applications cartographiques les plus utilisées en Chine. Elle fournit une multitude d'API et d'outils pour aider les développeurs à implémenter diverses fonctions cartographiques couramment utilisées. . Dans cet article, nous expliquerons comment utiliser JavaScript et l'API Tencent Map pour implémenter une fonction simple de dessin de rectangle de carte.

Étape 1 : Introduire l'API Tencent Map

Tout d'abord, pour utiliser l'API Tencent Map, nous devons introduire le fichier JavaScript correspondant dans la page Web. Nous pouvons ajouter l'extrait de code suivant dans le fichier HTML :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>地图矩形绘制</title>
    <script type="text/javascript" src="https://map.qq.com/api/js?v=2.exp&key=YOUR_KEY"></script>
  </head>
  <body>
    <div id="map" style="width:100%; height:100%;"></div>
  </body>
</html>
Copier après la connexion

Nous devons remplacer https://map.qq.com/api/js par notre propre clé API. Pour plus d'informations sur la façon d'obtenir et de demander des clés API, veuillez vous référer au [Document officiel de l'API Tencent Map](https://lbs.qq.com/webApi/javascriptV2/guide-getkey.html). https://map.qq.com/api/js替换为我们自己的API密钥。关于API密钥的获取和申请方法,可以参考[腾讯地图API官方文档](https://lbs.qq.com/webApi/javascriptV2/guide-getkey.html)。

步骤二:创建地图对象

在引入腾讯地图API之后,我们需要在JavaScript代码中创建地图对象。我们可以通过如下代码来实现:

var map = new qq.maps.Map(document.getElementById("map"), {
    center: new qq.maps.LatLng(39.916527, 116.397128),
    zoom: 13
});
Copier après la connexion

以上代码中创建了一个地图对象,并将其绑定到HTML页面中ID为“map”的元素上。初始地图的中心位置为北京市中心,缩放级别为13级。

步骤三:创建矩形

接下来,我们需要创建一个可以绘制矩形的工具。腾讯地图API提供了qq.maps.Rectangle类,可以用来绘制矩形。我们可以通过如下代码来创建一个矩形对象并添加到地图上:

var rectangle = new qq.maps.Rectangle({
    map: map,
    bounds: new qq.maps.LatLngBounds(
        new qq.maps.LatLng(39.922890, 116.394230),
        new qq.maps.LatLng(39.906240, 116.424124)
    ),
    strokeWeight: 3,
    fillColor: "#FF0000",
    fillOpacity: 0.35
});
Copier après la connexion

以上代码中创建了一个矩形对象,并通过bounds属性设置了矩形的经纬度边界,strokeWeight属性设置矩形边框的宽度,fillColor属性设置矩形区域的颜色,fillOpacity属性设置矩形区域的透明度。

步骤四:实现矩形的拖动和调整大小

创建矩形对象之后,我们需要实现交互性功能,包括矩形的拖动和调整大小。

var isDragging = false;
var isResizing = false;
var startX, startY;
var nw, sw, ne, se;

// 矩形拖拽事件
qq.maps.event.addListener(rectangle, "mousedown", function(e) {
    isDragging = true;
    startX = e.latLng.getLng();
    startY = e.latLng.getLat();
});

qq.maps.event.addListener(rectangle, "mousemove", function(e) {
    if (isDragging) {
        var dx = e.latLng.getLng() - startX;
        var dy = e.latLng.getLat() - startY;
        var bounds = rectangle.getBounds();
        var newBounds = new qq.maps.LatLngBounds(
            new qq.maps.LatLng(bounds.getSouthWest().getLat() + dy, bounds.getSouthWest().getLng() + dx),
            new qq.maps.LatLng(bounds.getNorthEast().getLat() + dy, bounds.getNorthEast().getLng() + dx)
        );
        rectangle.setBounds(newBounds);
        startX = e.latLng.getLng();
        startY = e.latLng.getLat();
    }
});

qq.maps.event.addListener(rectangle, "mouseup", function(e) {
    isDragging = false;
});

// 矩形大小调整事件
qq.maps.event.addListener(rectangle, "bounds_changed", function() {
    if (isResizing) {
        return;
    }
    nw = new qq.maps.Marker({
        icon: {
            path: "M -8,0 L -4,-12 L 8,-12 L 8,-16 L -16,-16 L -16,4 L -12,4 L -12,0 z",
            fillColor: "#FF0000",
            fillOpacity: 1,
            scale: 0.5,
            strokeColor: "#FFF",
            strokeWeight: 2
        },
        map: map,
        position: rectangle.getBounds().getNorthWest(),
        draggable: true,
        zIndex: 99999
    });
    sw = new qq.maps.Marker({
        icon: {
            path: "M -8,0 L -4,12 L 8,12 L 8,16 L -16,16 L -16,-4 L -12,-4 L -12,0 z",
            fillColor: "#FF0000",
            fillOpacity: 1,
            scale: 0.5,
            strokeColor: "#FFF",
            strokeWeight: 2
        },
        map: map,
        position: rectangle.getBounds().getSouthWest(),
        draggable: true,
        zIndex: 99999
    });
    ne = new qq.maps.Marker({
        icon: {
            path: "M -8,0 L -4,-12 L 8,-12 L 8,4 L -12,4 L -12,8 L -8,8 L -8,0 z",
            fillColor: "#FF0000",
            fillOpacity: 1,
            scale: 0.5,
            strokeColor: "#FFF",
            strokeWeight: 2
        },
        map: map,
        position: rectangle.getBounds().getNorthEast(),
        draggable: true,
        zIndex: 99999 
    });
    se = new qq.maps.Marker({
        icon: {
            path: "M -8,0 L -4,12 L 8,12 L 8,-4 L -12,-4 L -12,-8 L -8,-8 L -8,0 z",
            fillColor: "#FF0000",
            fillOpacity: 1,
            scale: 0.5,
            strokeColor: "#FFF",
            strokeWeight: 2
        },
        map: map,
        position: rectangle.getBounds().getSouthEast(),
        draggable: true,
        zIndex: 99999
    });

    // 区域大小调整事件
    qq.maps.event.addListener(nw, "drag", function() {
        isResizing = true;
        var bounds = rectangle.getBounds();
        var newBounds = new qq.maps.LatLngBounds(
            new qq.maps.LatLng(nw.getPosition().getLat(), nw.getPosition().getLng()),
            new qq.maps.LatLng(bounds.getSouthEast().getLat(), bounds.getSouthEast().getLng())
        );
        rectangle.setBounds(newBounds);
        isResizing = false;
    });
    
    qq.maps.event.addListener(sw, "drag", function() {
        isResizing = true;
        var bounds = rectangle.getBounds();
        var newBounds = new qq.maps.LatLngBounds(
            new qq.maps.LatLng(bounds.getNorthWest().getLat(), sw.getPosition().getLng()),
            new qq.maps.LatLng(sw.getPosition().getLat(), bounds.getNorthEast().getLng())
        );
        rectangle.setBounds(newBounds);
        isResizing = false;
    });
    
    qq.maps.event.addListener(ne, "drag", function() {
        isResizing = true;
        var bounds = rectangle.getBounds();
        var newBounds = new qq.maps.LatLngBounds(
            new qq.maps.LatLng(ne.getPosition().getLat(), bounds.getSouthWest().getLng()),
            new qq.maps.LatLng(bounds.getSouthEast().getLat(), ne.getPosition().getLng())
        );
        rectangle.setBounds(newBounds);
        isResizing = false;
    });
    
    qq.maps.event.addListener(se, "drag", function() {
        isResizing = true;
        var bounds = rectangle.getBounds();
        var newBounds = new qq.maps.LatLngBounds(
            new qq.maps.LatLng(bounds.getNorthWest().getLat(), bounds.getNorthWest().getLng()),
            new qq.maps.LatLng(se.getPosition().getLat(), se.getPosition().getLng())
        );
        rectangle.setBounds(newBounds);
        isResizing = false;
    });
});
Copier après la connexion

以上代码中,我们实现了拖动矩形和调整矩形大小的功能。使用标记对象创建了四个箭头,用户可以通过拖动这些箭头来调整矩形的大小。拖动箭头时,我们先创建一个新的qq.maps.LatLngBounds

Étape 2 : Créer un objet cartographique

Après avoir introduit l'API Tencent Map, nous devons créer un objet cartographique dans le code JavaScript. Nous pouvons y parvenir grâce au code suivant :

rrreee

Le code ci-dessus crée un objet map et le lie à l'élément avec l'ID "map" dans la page HTML. Le centre de la carte initiale est le centre de Pékin et le niveau de zoom est le niveau 13. 🎜🎜Étape 3 : Créer un rectangle🎜🎜Ensuite, nous devons créer un outil capable de dessiner un rectangle. L'API Tencent Maps fournit la classe qq.maps.Rectangle, qui peut être utilisée pour dessiner des rectangles. Nous pouvons créer un objet rectangulaire et l'ajouter à la carte via le code suivant : 🎜rrreee🎜Le code ci-dessus crée un objet rectangulaire et définit les limites de latitude et de longitude du rectangle via l'attribut bounds, StrokeWeight La propriété définit la largeur de la bordure rectangulaire, la propriété fillColor définit la couleur de la zone rectangulaire et la propriété fillOpacity définit la transparence de la zone rectangulaire. 🎜🎜Étape 4 : Implémenter le glisser et le redimensionnement du rectangle🎜🎜Après avoir créé l'objet rectangulaire, nous devons implémenter des fonctions interactives, notamment le glisser et le redimensionnement du rectangle. 🎜rrreee🎜Dans le code ci-dessus, nous implémentons les fonctions de glisser et de redimensionner le rectangle. Quatre flèches sont créées à l'aide de l'objet marqueur, et l'utilisateur peut redimensionner le rectangle en faisant glisser ces flèches. Lorsque vous faites glisser la flèche, nous créons d'abord un nouvel objet qq.maps.LatLngBounds, puis modifions les limites de latitude et de longitude du rectangle en fonction de la position de la flèche déplacée. 🎜🎜Conclusion🎜🎜Grâce à cet article, nous avons appris comment introduire l'API Tencent Map dans les pages HTML, créer des objets cartographiques et des objets rectangle, et implémenter la fonction interactive des rectangles. Ce petit exemple montre une partie de l'utilisation de l'API Tencent Map et fournit également quelques compétences de base en programmation JavaScript. Le code complet peut être consulté [ici](https://codepen.io/halfoceans/pen/LYejvmG). 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment afficher des cartes Street View sur Tencent Maps Comment afficher des cartes Street View sur Tencent Maps Comment afficher des cartes Street View sur Tencent Maps Comment afficher des cartes Street View sur Tencent Maps Mar 13, 2024 am 09:46 AM

Comment afficher la carte Street View sur Tencent Maps ? Tencent Maps est un logiciel de navigation cartographique utilisé par de nombreuses personnes. Il propose plusieurs cartes spéciales parmi lesquelles choisir, notamment des cartes 3D, des cartes satellites, des cartes dessinées à la main de sites pittoresques, etc. Celle qui se rapproche le plus de la scène réelle est la carte Street View qui nous permet de voir l'environnement de l'endroit que nous voulons trouver sur notre téléphone portable et de voir à quoi ressemble la destination. Alors, comment visualiser la carte Street View ? Ci-dessous, l'éditeur de ce site a compilé les méthodes de visualisation de la carte Street View pour votre référence. Comment afficher Street View sur Tencent Maps 1. Nous devons d'abord entrer l'adresse où nous voulons afficher Street View, puis il y aura un [︿] au bas de l'interface 2. Ensuite, vous pouvez voir un [Entrer Street Afficher] option 3. Puis

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

Comment définir les informations de localisation du magasin sur l'application Tencent Map et vous apprendre à les ajouter rapidement Comment définir les informations de localisation du magasin sur l'application Tencent Map et vous apprendre à les ajouter rapidement Feb 13, 2024 am 08:27 AM

Après avoir ajouté votre propre magasin sur Tencent Map, d'autres peuvent facilement trouver l'emplacement de leur magasin à l'aide du logiciel pour naviguer et accéder directement au magasin. Alors, comment définir les informations de localisation du magasin sur Tencent Maps ? Laissez-moi vous apprendre ci-dessous. [Ajouter une méthode] 1. Ouvrez l'application Tencent Maps et cliquez sur [Commentaires] dans le coin supérieur droit de la page d'accueil. 2. Dans la page de commentaires, nous sélectionnons [Règlement du commerçant] dans la zone relative à l'emplacement. 3. Ensuite, vous êtes invité à lier l'identifiant WeChat. Veuillez associer QQ à WeChat sur Tencent Map afin que Merchant Center puisse synchroniser les enregistrements d'entrée de commerçant du compte QQ et identifier votre identité de commerçant. Une fois les comptes liés, vos données d’actifs seront interconnectées. 4. Ou vous pouvez sélectionner directement un emplacement à ajouter, mais vous ne pourrez pas bénéficier des droits de commerçant. Les droits des commerçants sont officiellement certifiés

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

Comment partager une position sur Tencent Maps Comment partager une position sur Tencent Maps Comment partager une position sur Tencent Maps Comment partager une position sur Tencent Maps Mar 12, 2024 pm 02:34 PM

Comment partager une position sur Tencent Maps ? Tencent Maps est un logiciel de navigation cartographique très populaire. Nous pouvons y trouver l'emplacement que nous souhaitons supprimer, puis choisir un voyage qui nous convient en fonction des méthodes de voyage fournies par la navigation, puis partir en fonction de la navigation. Il peut également localiser avec précision notre position en temps réel. Si nous sommes à l'extérieur, nous pouvons également partager notre position avec des amis et les laisser nous trouver. Alors, comment partager notre position ? Ci-dessous, l'éditeur de ce site Web a compilé la répartition des emplacements partagés pour votre référence. Comment partager votre position sur Tencent Maps 1. Trouvez d'abord votre position sur la carte, qui est un petit point bleu, généralement au milieu de la carte 2. Après avoir cliqué sur le petit point, la position actuelle apparaîtra en bas de le système 3. Cliquez sur

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

See all articles