


Implémentation d'Amap et Baidu Map pour extraire les coordonnées de longitude et de latitude des limites des régions administratives basées sur JavaScript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标_javascript技巧
前言
近来由于工作需要,需要提取某些城市的经纬度坐标,稍微搜索了一下,发现百度地图和高德地图都提供了相关的函数和例子.那么剩余的工作也就比较简单了,保存坐标,然后转换为WGS坐标,这样才能和现有的GPS数据以及地图匹配.
主要问题和解决方法
本地保存文件跨浏览器支持
由于安全的原因,JavaScript本地保存文件的方式通常都只有IE支持的ActiveXObject/Open方法,每次都要提示不安全和允许运行,非常麻烦.好在其他浏览器目前都支持标签实现文件下载的方法.经测试最新的Google Chrome, Mozilla Firefox,百度浏览器,360浏览器下都可以运行.不说废话,直接上代码:
function Download() { // IE if(/msie/i.test(navigator.userAgent)) { var w = window.open("", "导出", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no"); var filename = document.getElementById("filename").value ; var content = document.getElementById("content").value; w.document.charset = "UTF-8"; w.document.write(content); w.document.execCommand("SaveAs", false, filename+'.txt'); w.close(); } // Firefox/Chrome/Safari/Opera else { var filename = document.getElementById("filename").value ; var content = document.getElementById("content").value; str = encodeURIComponent(content); document.getElementById("SaveChrome").download = filename+'.txt'; var aLink = document.getElementById("SaveChrome") ; aLink.href = "data:text/csv;charset=utf-8,"+str; aLink.click(); } }
经纬度转换
这个话题感兴趣的朋友可以自己搜索火星坐标相关转换,精度在1m范围的网上提供有服务可以免费使用.自写程序经验证精度在6m 以内.
百度地图方法
关键函数是 BMap.Boundary() 生成的类,调用它的方法get就可以通过名称获得县或市级以上的行政区域.
function getBoundary() { var bdary = new BMap.Boundary(); var name = document.getElementById("districtName").value; bdary.get(name, function (rs) { //获取行政区域 var fileName = ""; var newFileObject = fso.CreateTextFile(folderName + "\\" + name + ".txt", true); map.clearOverlays(); //清除地图覆盖物 var count = rs.boundaries.length; //行政区域的点有多少个 for (var i = 0; i < count; i++) { var ply = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 2, strokeColor: "#ff0000" }); //建立多边形覆盖物 map.addOverlay(ply); //添加覆盖物 map.setViewport(ply.getPath()); //调整视野 } newFileObject.write(rs.boundaries[0]); newFileObject.Close(); }); }
高德地图
关键代码通过阅读示例文件可以发现在下拉列表返回里面有边界值的出现.
amapAdcode.search = function(adcodeLevel, keyword, selectId) {//查询行政区划列表并生成相应的下拉列表 var me = this; if (adcodeLevel == 'district'||adcodeLevel == 'city') {//第三级时查询边界点 this._district.setExtensions('all'); } else { this._district.setExtensions('base'); } this._district.setLevel(adcodeLevel); //行政区级别 this._district.search(keyword, function(status, result) {//注意,api返回的格式不统一,在下面用三个条件分别处理 var districtData = result.districtList[0]; if (districtData.districtList) { me.createSelectList(selectId, districtData.districtList); } else if (districtData.districts) { me.createSelectList(selectId, districtData.districts); } else { document.getElementById(selectId).innerHTML = ''; } map.setCenter(districtData.center); me.clearMap(); me.addPolygon(districtData.boundaries);
其中的districtData.boundaries 就是我们需要的.调试了一下,大胆猜测果然是实现了Tostring() 方法的一个对象.
"104.639106,26.863388,104.644771,26.861842,104.64767,26.854997,104.647748..." 很明显的就是我们需要的gcj坐标.
总结
至此,基本也就没有什么问题了,剩余的工作就是解析得到的文件.需要提取全国的数据也就是循环读取全国城市列表文件了.(通常搜索cityname,电脑里面都会找到的,原因,呵呵,猜测是迅雷,QQ之类的IP定位需要吧.)
重要的一点,推荐使用高德地图,原因就是百度地图得到的行政规划有问题,不包含县级市.最典型的就是贵州省,很多地市都是分离的,是带岛或洞的复杂多边形.百度在这里完败.关于怎么处理这里复杂的多边形以支持在MapWinGIS显示和处理,下次会写一篇笔记.
以上就是基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标_javascript技巧的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

1. Installez et ouvrez d'abord l'application Amap sur votre téléphone mobile, cliquez sur [Mon] et sélectionnez [Connexion/Enregistrement]. 2. Sélectionnez un numéro de téléphone mobile, WeChat ou Alipay pour vous inscrire selon vos besoins et remplissez les informations personnelles selon les invites, y compris le numéro de téléphone mobile, le mot de passe, etc. 3. Après avoir terminé le remplissage, cliquez sur [S'inscrire] pour terminer l'enregistrement du compte. 4. Ensuite, utilisez la méthode sélectionnée lors de l'inscription pour la vérification de la connexion. Si vous vous inscrivez via un numéro de téléphone mobile, vous devez saisir votre numéro de téléphone mobile et votre mot de passe pour vous connecter.

Oui, pour des raisons de sécurité, de services personnalisés et de gestion de compte, Amap nécessite une inscription avec un numéro de téléphone mobile. Les étapes d'inscription comprennent : Ouvrez l'application Amap, cliquez sur « Mon » et « Connexion/Enregistrement », sélectionnez un numéro de téléphone mobile pour vous inscrire, entrez le numéro de téléphone mobile pour obtenir le code de vérification, définissez un mot de passe pour terminer l'inscription.

Ce site Web a rapporté le 24 juillet que Moore Thread et Baidu Maps avaient récemment signé un accord de coopération stratégique. Les deux parties tireront parti de leurs avantages respectifs en matière de technologie et de produits pour promouvoir conjointement l'innovation technologique dans le domaine des cartes jumelles numériques. Selon l'accord de coopération, les deux parties se concentreront sur la construction du projet de carte jumelle numérique, en tirant parti des avantages du moteur de carte de Baidu Map, des avantages de la technologie du jumeau numérique, des avantages des applications cartographiques Big Data, ainsi que du rendu graphique 3D et de la technologie informatique de l'IA. Les avantages du GPU complet de Moore pour mener activement une coopération continue approfondie et étendue favoriseront conjointement l'application et la mise en œuvre à grande échelle de solutions de cartes jumelles numériques. Selon l'introduction officielle de Moore Thread, les données cartographiques sont un atout clé du pays, et les cartes jumelles numériques soulignent particulièrement leur importance dans les scénarios de rendu à charge élevée, ce qui a un impact significatif sur les performances de rendu et les performances des GPU.

Les raisons pour lesquelles il n'y a pas de son dans la navigation Amap incluent une mauvaise connexion des haut-parleurs, une baisse du volume de l'appareil, des paramètres Amap incorrects, des interférences d'application en arrière-plan, le mode silencieux ou vibreur du téléphone portable et des problèmes d'autorisation du système. Les solutions sont les suivantes : vérifiez la connexion du haut-parleur ; réglez le volume ; vérifiez les paramètres de la carte Amap ; fermez les applications en arrière-plan ; accordez les autorisations ; redémarrez l'appareil ;

Selon les informations du 16 avril, les utilisateurs de Xiaomi ont récemment accueilli une nouvelle fonctionnalité pratique : Xiaomi CarWith a officiellement lancé la navigation sur les voies Amap. Le lancement de ce service apportera sans aucun doute aux conducteurs une expérience de navigation plus précise et plus pratique. Selon les données, l'intégration d'Amap et de CarWith a permis d'obtenir une connexion transparente et les utilisateurs peuvent directement bénéficier du guidage précis de la navigation au niveau des voies sans avoir besoin de mises à jour logicielles supplémentaires. Cette amélioration sera probablement apportée côté serveur, évitant ainsi aux utilisateurs l'étape fastidieuse de mise à jour. La navigation automobile au niveau des voies est une fonction innovante d'Amap. Elle peut restaurer le tracé réel de la route à un degré élevé sur l'écran, affichant clairement le nombre de voies, les panneaux au sol, les entrées et sorties, les voies spéciales et d'autres informations sur la route actuelle. , offrant aux conducteurs une information plus complète,

La dernière version de la version mobile de Kongying Tavern Genshin Impact Map est un logiciel auxiliaire de carte unique spécialement créé pour les fans de Genshin Impact. Ce logiciel fournit des informations détaillées sur les principales cartes de jeu des différentes zones de Genshin Impact. joueurs pour résoudre différents types de problèmes dans Genshin Impact en ligne. Comment synchroniser la carte Kongying Tavern avec la version mobile Genshin Impact ? 1. Tout d’abord, vous devez télécharger la dernière version et, après l’installation, l’exécuter sous la forme d’une fenêtre flottante. 2. Ouvrez ensuite Genshin Impact et entrez dans le jeu. Lorsque vous ouvrez la carte du jeu, vous pouvez voir de nombreuses marques. 3. Les joueurs peuvent sélectionner les balises de ressources qu'ils souhaitent afficher sur la gauche. 4. Ensuite, il vous suffit de vous rendre à l'emplacement marqué et d'effectuer les opérations correspondantes pour obtenir les accessoires de ressources souhaités. 5. Enfin, vous pouvez cliquer sur le coin supérieur droit

Étapes pour afficher les enregistrements de voyage sur Amap : 1. Connectez-vous à Amap ; 2. Entrez « Mon » → « Mon voyage » ; 3. Affichez la liste des enregistrements de voyage ; 4. Cliquez pour afficher les détails ; .

Amap APP est un logiciel de navigation cartographique gratuit, professionnel et facile à utiliser. Tout le monde l'aime beaucoup. Il possède une variété de fonctions, qui peuvent apporter une grande commodité à nos vies. Quoi ? certaines cartes de vue des rues ou des demandes de renseignements sur la longitude et la latitude peuvent être résolues ici. L'opération est simple et pratique, au-delà de votre imagination. Souvent, tout le monde aime partager des cartes et des informations de localisation ici, ce qui est très bien. Souvent, pour certains enfants ou personnes âgées à la maison, les gens seront plus inquiets lorsqu'ils sortiront. Lorsqu'ils seront confrontés à diverses situations, vous pourrez éviter la situation dans laquelle tout le monde se perdra.
