2016-09-28 6 views
0

Wie kann ich meine Google Maps in ein Svg-Element hinzufügen? Ich möchte Svg mit Karte füllen.Eingebettete Google Maps iframe in SVG-Element

Die Karte wird aber gestreckt und aus der svg Form

den Code Sie einen src Link in iframe einfügen müssen, um testete.

Mein Code:

svg 
 
{ 
 
    stroke: red; 
 
}
<svg viewBox="0 0 100 100" preserveAspectRatio="none"> 
 
    <foreignObject id="map" width="560" height="349"> 
 
    <iframe width="560" height="349" frameborder="0" style="border:0" src="LINK + API_KEY" allowfullscreen></iframe> 
 
    </foreignObject> 
 
    <path fill="url(#map)" d="M 50 15, 100 25, 100 100, 50 100, 0 100, 0 25Z" /> 
 
</svg>

Dankten

+0

Willkommen bei SO! Bitte geben Sie bei der Bereitstellung von Beispielcode ein [minimales, vollständiges, überprüfbares Beispiel] (http://www.stackoverflow.com/help/mcve) an (geben Sie uns also ein funktionierendes iFrame-Beispiel). Ich verstehe richtig deine minimale Frage kann eine Svg verwenden, um einen iframe zu maskieren, ist das richtig? – henry

+0

Ja, das ist es! Ich zeige keinen gültigen iframe, weil der API-Schlüssel von Google maps. – user3242861

+0

Kühl. Wenn das die Frage ist, dann ist Google Maps nicht wirklich wichtig und jeder funktionierende iframe wäre in Ordnung – henry

Antwort

1

Hier ist eine Lösung, die auf Yoksel der "Masking video with SVG Clippath". Das Platzhaltervideo dient nur dazu, einen funktionierenden öffentlichen Iframe bereitzustellen. Um diese Lösung zu verwenden, müssen Sie die <path> neu definieren, um die richtige Größe zu haben (wenn Sie Glück haben, können Sie nur Prozente wie Yoksel verwenden).

(@yoksel sind Sie die gleiche Yoksel?)

.svg { 
 
    width: 560px; 
 
    height: 349px; 
 
}
<svg class="svg"> 
 
    <clippath id="my-clippath"> 
 
    <path d="M 50 15, 100 25, 100 100, 50 100, 0 100, 0 25Z"></path> 
 
    </clippath> 
 

 
    <g clip-path="url(#my-clippath)"> 
 
    <foreignObject width="560" x="0" y="0" height="349"> 
 
     <iframe width="560" height="349" src="https://www.youtube.com/embed/NpEaa2P7qZI" frameborder="0" allowfullscreen></iframe> 
 
    </foreignObject> 
 
    </g> 
 
</svg>

+0

Danke @henry. Das ist es aber wie kann ich zB den Clippath mit einer Breite von 100% und einer Höhe von 100% setzen? Und passen Sie den Inhalt an. Ich benutze viele Svg Shapes und ich habe Probleme mit responsive, wenn ich Svg mit Bildern oder in diesem Fall mit iframes gefüllt habe. – user3242861

+0

Wenn Sie noch daran arbeiten: sieht aus wie einige gute Ressourcen sind https://www.smashingmagazine.com/2015/05/creating-responsive-shapes-with-clip-path/, http://bennettfeely.com/clippy /, und http://codepen.io/maddesigns/full/jJqep – henry

Verwandte Themen