2017-02-21 2 views
-1

Exemple: J'ai plusieurs coordonnées et je veux m'assurer que l'image de carte statique contient tous les points. Maintenant, je calcule la coordonnée du centre. Comment puis-je calculer le niveau de zoom de sorte que chaque coordonnée soit incluse?ICI Mapview: Comment calculer le niveau de zoom?

Répondre

0

Tout d'abord, ajoutez tous les points dans une zone GéoBounding pour calculer la zone de délimitation de tous les points. Ensuite, zoomez sur la carte en utilisant le API suivant.

Il existe plusieurs variantes du zoomTo avec GeoBoundingBox comme argument. Cela devrait couvrir la plupart des cas d'utilisation dont vous avez besoin.

+0

Nous vous remercions de votre réponse rapide. Je dois spécifier mon problème: je veux afficher les coordonnées sur une carte dans Matlab. Pour cela j'utilise l'API Map Image (https://developer.here.com/rest-apis/documentation/enterprise-map-image/topics/resource-map.html) qui me fournit une image statique d'une carte. Je ne peux pas utiliser les fonctions. Je peux seulement utiliser les paramètres dans l'URL pour obtenir ce dont j'ai besoin. Mon problème est que j'ai besoin d'au moins deux coordonnées dans mon image afin de calculer où toutes mes autres coordonnées peuvent être placées sur l'image. – user7596936

+0

Je vois, vous utilisez nos API de repos. Dans ce cas, vous devez implémenter la logique similaire à ce que nous avons implémenté sur Android et iOS. Calculer et développer un GeoBoundingBox donné vos points. Compte tenu de la GeoBoundingBox, calculez le centre de la zone de géolocalisation. Ensuite, utilisez un algorithme de subdivision récursif pour trouver le meilleur niveau de zoom. IE: essayez 10, puis 15, puis 17 etc etc comme le tri de fusion jusqu'à ce que vous trouviez le meilleur ajustement. Cela vous permettra de calculer l'ensemble de tuiles qui correspond à la boîte de délimitation à l'écran. Quelques maths nécessaires pour vous :) –

+0

Je pourrais utiliser un peu plus d'aide avec les maths;) Disons que je veux une photo de l'europe. Donc, je calcule une coordonnée de centre, un zoomlevel et crée l'URL: http://image.maps.cit.api.here.com/mia/1.6/mapview?c=53.0014725,13.6456477&z=4.2&w=1116&h=692&t= 14 & f = 0 & nodot = 1 & app_id = XXXX & app_code = XXXX. Maintenant, je veux calculer les coordonnées des bords de l'image. Comment puis je faire ça? Mon idée était d'utiliser le tileize et le rayon du monde pour obtenir le mètre/pixel. Mais comment savoir quel tileize est utilisé quand j'utilise différentes largeurs, hauteurs et niveaux de zoom? Y a-t-il une formule? – user7596936