Table des matières
PHP+Mysql+jQuery中国地图区域数据统计实例讲解,jquery实例讲解
Maison php教程 php手册 PHP+Mysql+jQuery中国地图区域数据统计实例讲解,jquery实例讲解

PHP+Mysql+jQuery中国地图区域数据统计实例讲解,jquery实例讲解

Jun 13, 2016 am 08:53 AM
jquery mysql mysql数据库 php 数据统计

PHP+Mysql+jQuery中国地图区域数据统计实例讲解,jquery实例讲解

今天我要给大家介绍在实际应用中,如何把数据载入到地图中。本文结合实例,使用PHP+Mysql+jQuery实现中国地图各省份数据统计效果。


本例以统计某产品在各省份的活跃用户数为背景,数据来源于mysql数据库,根据各省份的活跃用户数,分成不同等级,并以不同的背景色显示各省份的活跃程度,符合实际应用需求。

HTML

首先在head部分载入raphael.js库文件和chinamapPath.js路径信息文件。

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="raphael.js"></script> 
<script type="text/javascript" src="chinamapPath.js"></script>
Copier après la connexion

然后在body中需要放置地图的位置放置div#map。

<div id="map"></div>
Copier après la connexion

PHP

我们准备一张mysql表名为mapdata,这张表存储的是产品在各个省份的活跃用户数据。我们使用PHP读取mysql表中的数据,并将读取的数据以json格式输出,并将PHP文件命名为json.php。

$host="localhost";//主机 
$db_user="root";//数据库用户名 
$db_pass="";//密码 
$db_name="demo";//数据库名称 
 
$link=mysql_connect($host,$db_user,$db_pass);//连接数据库 
mysql_select_db($db_name,$link); 
mysql_query("SET names UTF8"); 
 
$sql = "select active from mapdata order by id asc";//查询 
$query = mysql_query($sql); 
 
while($row=mysql_fetch_array($query)){ 
  $arr[] = $row['active']; 
} 
echo json_encode($arr);//JSON格式 
mysql_close($link);//关闭连接
Copier après la connexion

值得注意的是,我们要把mapdata表中各省份的排序与chinamapPath.js文件中的各省份顺序一致,这样才能保证读取的数据能和地图中的省份对应上。

jQuery

首先我们使用jquery的get()方法获取json数据。

$(function(){ 
  $.get("json.php",function(json){ 
    ... 
  }); 
});
Copier après la connexion

获取到json数据后,我们先要将json数据转换为数组,然后我们遍历整个数组,根据json数据中各省份活跃用户数的多少,我们作一个等级区分,这里我将等级分为0-5六个等级,活跃用户数越大背景颜色越深,这样在地图上显示就会一目了然的看出不同省份的数据等级程度。

请看整理好的代码:

$(function(){ 
 $.get("json.php",function(json){//获取数据 
 var data = string2Array(json);//转换数组 
  
 var flag; 
 var arr = new Array();//定义新数组,对应等级 
 for(var i=0;i<data.length;i++){ 
  var d = data[i]; 
  if(d<100){ 
   flag = 0; 
  }else if(d>=100 && d<500){ 
   flag = 1; 
  }else if(d>=500 && d<2000){ 
   flag = 2; 
  }else if(d>=2000 && d<5000){ 
   flag = 3; 
  }else if(d>=5000 && d<10000){ 
   flag = 4; 
  }else{ 
   flag = 5; 
  } 
  arr.push(flag); 
 } 
 //定义颜色 
 var colors = ["#d7eef8","#97d6f5","#3fbeef","#00a2e9","#0084be","#005c86"]; 
  
 //调用绘制地图方法 
 var R = Raphael("map", 600, 500); 
 paintMap(R); 
  
 var textAttr = { 
  "fill": "#000", 
  "font-size": "12px", 
  "cursor": "pointer" 
 }; 
    
 var i=0; 
 for (var state in china) { 
  china[state]['path'].color = Raphael.getColor(0.9); 
  (function (st, state) { 
    
   //获取当前图形的中心坐标 
   var xx = st.getBBox().x + (st.getBBox().width / 2); 
   var yy = st.getBBox().y + (st.getBBox().height / 2); 
    
   //修改部分地图文字偏移坐标 
   switch (china[state]['name']) { 
    case "江苏": 
     xx += 5; 
     yy -= 10; 
     break; 
    case "河北": 
     xx -= 10; 
     yy += 20; 
     break; 
    case "天津": 
     xx += 10; 
     yy += 10; 
     break; 
    case "上海": 
     xx += 10; 
     break; 
    case "广东": 
     yy -= 10; 
     break; 
    case "澳门": 
     yy += 10; 
     break; 
    case "香港": 
     xx += 20; 
     yy += 5; 
     break; 
    case "甘肃": 
     xx -= 40; 
     yy -= 30; 
     break; 
    case "陕西": 
     xx += 5; 
     yy += 10; 
     break; 
    case "内蒙古": 
     xx -= 15; 
     yy += 65; 
     break; 
    default: 
   } 
   //写入文字 
   china[state]['text'] = R.text(xx, yy, china[state]['name']).attr(textAttr); 
    
   var fillcolor = colors[arr[i]];//获取对应的颜色 
    
   st.attr({fill:fillcolor});//填充背景色 
    
   st[0].onmouseover = function () { 
    st.animate({fill: "#fdd", stroke: "#eee"}, 500); 
    china[state]['text'].toFront(); 
    R.safari(); 
   }; 
   st[0].onmouseout = function () { 
    st.animate({fill: fillcolor, stroke: "#eee"}, 500); 
    china[state]['text'].toFront(); 
    R.safari(); 
   }; 
      
   })(china[state]['path'], state); 
   i++; 
 } 
 }); 
});
Copier après la connexion

上述代码中,使用var fillcolor = colors[arr[i]];获取对应等级的颜色值,然后通过st.attr({fill:fillcolor});将颜色填充到对应的省份区块中。此外string2Array()函数是将字符串转换为数组。

function string2Array(string) { 
  eval("var result = " + decodeURI(string)); 
  return result; 
}
Copier après la connexion

通过以上步骤,我们就可以看到一个不同省份不同背景色的中国地图,根据不同颜色可以区分省份之间的活跃用户数差异程度,达到预期目标,小伙伴们希望这篇文章对大家的学习有所帮助。

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4 Dec 09, 2024 am 11:42 AM

L'un des changements majeurs introduits dans MySQL 8.4 (la dernière version LTS en 2024) est que le plugin « MySQL Native Password » n'est plus activé par défaut. De plus, MySQL 9.0 supprime complètement ce plugin. Ce changement affecte PHP et d'autres applications

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Ressources utiles CakePHP Ressources utiles CakePHP Sep 10, 2024 pm 05:27 PM

Les ressources suivantes contiennent des informations supplémentaires sur CakePHP. Veuillez les utiliser pour obtenir des connaissances plus approfondies à ce sujet.

See all articles