Je me demande s'il y a quelqu'un qui a mis en œuvre des cartes Google Maps V2 et Baidu dans la même version; Parce que GM ne fonctionne pas comme prévu en Chine? P>
ou devrais-je diviser le projet en deux branches à la place? Cependant, il serait agréable de sauter avoir deux branches à maintenir. P>
6 Réponses :
Ma solution pour cela était d'implémenter GM comme d'habitude, cependant, si l'utilisateur dispose de chinois (via Paramètres) Des cartes statiques doivent être utilisées, mais la carte statique est extraite de Baidu au lieu de Google.
staticUrl = "http://api.map.baidu.com/staticimage?center=" + location.getLongitude() + "," + location.getLatitude() + "&width=" + width + "&height=" + width + "&zoom=15" + "&markers=" + location.getLongitude() + "," + location.getLatitude();
Merci pour votre solution. Pourriez-vous s'il vous plaît expliquer pourquoi il n'est pas recommandé si nous essayons de mettre en œuvre une "vraie solution de carte"?
Si votre serveur peut accéder à GM sans problèmes (par exemple, votre hébergement n'est pas en Chine continentale ou que c'est une connexion non censurée), pourquoi n'avez-vous pas de serveur charger des données de GM et l'acheminez-la à l'utilisateur? Nous avons fait cela pour quelques projets dans le passé, a travaillé comme un charme. P>
P.s. Vous pouvez faire de PHP Pull Static Carte de GM pour demande longtemps / lat, stockez-le dans le fichier Temp sur le serveur, puis transmettez l'URL au fichier TEMP. Du point de vue de l'utilisateur, ils regarderaient (statique) gm. p>
p.p.s. Si vous avez besoin d'un utilisateur de pouvoir utiliser l'interface utilisateur de GM (DO PAN / ZOOM), vous auriez besoin d'un PHP un peu plus complexe qui modifierait tous les JS chargés de GM afin que toutes les données soient toujours demandées à votre serveur, qui seraient alors des cartes. - Donc, fondamentalement pour éviter toute demande de la machine cliente à envoyer à GM Server, mais tous pour être envoyés à la tienne à la place. P>
En outre, j'ai trouvé que si vous utilisez http://ditu.google.cn en Chine, ça marche. p>
Lorsque vous utilisez des cartes en ligne en Chine pour votre application, que ce soit Google Maps ou Baidu, il existe un transformation de la latitude et de longitude pour des raisons légales . P>
La vue satellite dans Google Maps utilise les coordonnées "Terre" (WGS-84). La vision de la carte des GMAPS en Chine utilise des coordonnées "Mars" (GCJ-02), et il y a code pour convertir entre les deux . Les cartes Baidu utilisent les coordonnées "Bearpaw", avec un offset différent. L'API Baidu Carte a un La démonstration convertissant entre les coordonnées de Google et ses propres systèmes . < / p>
en Chine, GPS, comme tout, a une couche supplémentaire de complication :) p>
Si vous avez construit cette application, veuillez poster les détails. Avoir une interface anglaise pour Baidu Cartes serait géniale. P>
Vous pouvez utiliser à la fois Google Maps et Baidu Maps côte à côte, mais assurez-vous de convertir des coordonnées WGS-84 (utilisées par la plupart du monde) vers les coordonnées de Baidu ( BD-09, différent du GCJ-02 de la Chine). Voici quelques codes que cela, basé sur Un exemple de l'API de Baidu Maps :
p>
<style type="text/css"> body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软é é»";} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=gd0GyxGUxSCoAbmdyQBhyhrZ"></script> <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script> <div id="allmap"></div>
Probablement un peu en retard à la fête, mais j'ai accidentellement trébuché sur quelque chose récemment qui pourrait vous aider. P>
J'ai essayé des cartes Baidu et il était choquant difficile à installer et terrible à utiliser pour que j'ai eu un coup d'œil autour de moi et soudainement, Google Maps a fonctionné pour moi sans VPN! P>
J'ai réalisé que l'ancien serveur Google China était toujours actif et si vous essayez: p>
Vous constaterez que la création d'un iframe à l'aide de l'adresse Google.cn fonctionne! p> maps.google.cn code> p>
Essayez d'utiliser cette manière avec Google Coordonnées
http://api.map.baidu.com/marker?location=39.916979519873,116.41004950566&output=html
Personnellement, je vous recommanderais d'aller avec Baidu uniquement, comme vous le savez également, GM ne fonctionne pas que bien dans le continent, même si vous êtes capable de l'ajouter à votre application, il fera que les utilisateurs soient énervés comme Google Services A des problèmes en Chine - de ma propre expérience, traduire régulièrement ne parvient pas à se connecter, même chose pour le GM, il n'est pas nécessaire de mentionner les autres services de Google, qui sont "au hasard" trop lents ou sans connexion.
Le principal problème est que les cartes Baidu sont toutes en chinois :(
@stephanruhl: Un autre problème est que Baidu ne fournit aucune donnée de carte utile en dehors de la grande région de la Chine. (Et c'est le cas, ce serait probablement en chinois!)
@Dandascalescu Je offrais Baidu parce que la question était de la question de la Chine (et de la vie en Chine pour que je pense plus longtemps que je pense d'autres hypothèses) mais votre réponse ci-dessous rend tout plus clair :) Wechat fait aussi la même chose pour leur intl et chinois versions