6
votes

Qu'est-ce que cela signifie et comment a-t-il de l'aide?

Pour le moment, je code une application Web qui importe des données d'image de Google Maps via l'API statique - http://code.google.com/apis/maps/documentation/staticmaps/ - dans une toile HTML5.

Malheureusement, j'ai rencontré le problème de ne pas pouvoir manipuler les données de pixels de Google Maps en raison de restrictions croisées du domaine.

Cependant, j'ai lu ce blog post de M. Doob, l'une des personnes derrière la vidéo du centre-ville de Wilderness ( http://thewildernessdowntown.com ) qui utilise la toile avec Google Maps - http: // mrashob .com / blog / post / 705 - et il se lit comme suit:

"Un défi supplémentaire était que, avec vous n'avez pas accès aux données de pixels des images Chargé d'un autre domaine ... Cependant, il est interdit d'accéder au pixel, il est autorisé () est autorisé à copier des zones d'images hébergées sur d'autres domaines. "

Je pense que cela peut être la solution à mon problème comme plus tard dans le poteau qu'il affiche la manipulation de pixels de l'image, mais je ne comprends pas exactement ce que cela signifie exactement par "context.drawimage () est autorisé Pour copier des zones d'images hébergées sur d'autres domaines 'et ce serait vraiment utile si quelqu'un pouvait la clarifier pour moi.

Merci,

DLIKS

EDIT: Voici le code que j'utilise pour dessiner l'image Google Maps sur la toile: xxx

L'image affiche OK mais lorsque j'essaie d'utiliser getimageData pour manipuler cette image intégrée sur la toile, je reçois une erreur de sécurité


4 commentaires

Question intéressante, +1. Sachez que les cartes de Google sont des matériaux protégés du droit d'auteur. Il existe donc certaines limitations sur ce que vous pouvez légalement faire avec eux.


Malheureusement, j'ai rencontré le problème de ne pas pouvoir manipuler les données de pixels de Google Maps en raison de restrictions croisées du domaine. Quel code utilisez-vous?


J'ai ajouté le code comme édition dans la question.


Nice question, je ne l'obtiens pas non plus. J'ai essayé de copier les données d'image d'un élément de toile à une autre, mais la manipulation de la deuxième toile donne également une erreur de sécurité.


3 Réponses :


-1
votes

context.drawimage () Je pense que c'est un moyen de manipuler une toile HTML 5. Jetez un coup d'œil à ces pages Web.

http://dev.opera.com/articles / Vue / HTML-5-Canvas-The-Basics /
http://dicintohtml5.ep.io/canvas.html


3 commentaires

il h. J'étais à mi-chemin de publier une réponse presque identique. Aucun point maintenant, alors je vais simplement ajouter mon poids au tien (ne peut pas +1 comme je suis à court de votes pour la journée)


context.drawimage () n'est que la façon standard de placer une image sur la toile. Cependant, il suffit de l'utiliser comme dans les exemples liés ne permettant pas la manipulation d'images à base de pixels d'images distantes (qui est ce que j'essaie d'atteindre). Ce que j'essaie de comprendre, c'est comment M. Doob a réussi à contourner cette restriction via une manipulation intelligente de cette fonction. Merci pour la réponse cependant!


En effet, ce n'est pas une réponse à la question. J'ai essayé d'utiliser Drawimage mais cela donne une exception: Security_err: exception DOM 18



3
votes

Après avoir lu l'article, je pense que vous avez mal interprété ce que M.doob a déclaré:

"[Jamie] a ensuite commencé à rechercher d'autres moyens de dessiner les données de cartes de la carte d'une manière qui créerait le même effet."

Il fait aucune manipulation de pixels , il utilise context.drawimage pour

"... CROCHING COLONNES de l'image d'origine et POSITIONNEMENT L'un après l'autre horizontalement."


2 commentaires

Comment est-ce possible ... vraiment! J'étais sur le point de donner exactement la même réponse, mais vous m'avez battu dans une incroyable 13 secondes!


Ah, je vois! Merci d'avoir répondu!



2
votes

Attribuer src code> à l'image à l'aide d'une page ASPX, et cette page ASPX répondra avec votre texte à l'image.

Par exemple: P>

image.src="CreateImage.aspx";
image.onload = function () {
    ctx.drawImage(image,5,5,width,height);
}


0 commentaires