2011-11-28 15 views
5

Ciao Ho una multigeometria Come ha uno stile come un rollover quando si passa il mouse appair le linee, La mia domanda è le dieters linestring nella multigeometria hanno colori diversi che possibile ?.Applicare stili specifici a linee in un MultiGeometry in KML

Nel prossimo esempio ho il segnaposto Durham Tees Valley quando si seleziona uno stile ma mi piacerebbe avere le due linee con colori diversi.

Grazie

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://earth.google.com/kml/2.2"> 
<Document> 
<name>UK &amp; Ireland, Flight Maps</name> 
<open>1</open> 
     <LookAt> 
      <longitude>-3.478829007934099</longitude> 
      <latitude>52.50255557278696</latitude> 
      <altitude>0</altitude> 
      <range>730703.2034581316</range> 
      <tilt>53.03089122623036</tilt> 
      <heading>30.72599120906411</heading> 
     </LookAt> 


    <Style id="test"> 
    <LineStyle> 
     <color>ff235523</color> 
     <width>0.5</width> 
    </LineStyle> 
    </Style> 

<Style id="doc"><ListStyle><ItemIcon><state>open closed</state><href>http://maps.google.com/mapfiles/kml/shapes/airports.png</href></ItemIcon></ListStyle></Style> 
<Style id="airportfolder"><ListStyle><ItemIcon><state>open closed</state><href>http://maps.google.com/mapfiles/kml/shapes/placemark_circle_highlight.png</href></ItemIcon></ListStyle></Style> 
<Style id="info"><ListStyle><listItemType>checkHideChildren</listItemType><ItemIcon><state>open closed</state><href>http://www.barnabu.co.uk/files/icons/info.png</href></ItemIcon></ListStyle></Style> 
<Style id="sh_spider"><IconStyle><scale>1.2</scale><Icon><href>http://maps.google.com/mapfiles/kml/shapes/placemark_circle_highlight.png</href></Icon></IconStyle><LabelStyle><color>ff001111</color><scale>1.4</scale></LabelStyle><LineStyle><width>0.5</width><color>ffff111f</color></LineStyle></Style> 
<Style id="sn_spider"><IconStyle><scale>0.7</scale><Icon><href>http://maps.google.com/mapfiles/kml/shapes/placemark_circle_highlight.png</href></Icon></IconStyle><LabelStyle><color>ffb5b5b5</color><scale>0.9</scale></LabelStyle><LineStyle><color>00ff11ff</color></LineStyle></Style> 
<StyleMap id="spider"><Pair><key>normal</key><styleUrl>#sn_spider</styleUrl></Pair><Pair><key>highlight</key><styleUrl>#sh_spider</styleUrl></Pair></StyleMap> 


<Style id="2_sh_spider"><IconStyle><scale>1.2</scale><Icon><href>http://maps.google.com/mapfiles/kml/shapes/placemark_circle_highlight.png</href></Icon></IconStyle><LabelStyle><color>ff110011</color><scale>1.4</scale></LabelStyle><LineStyle><width>0.5</width><color>ff11111f</color></LineStyle></Style> 
<Style id="2_sn_spider"><IconStyle><scale>0.7</scale><Icon><href>http://maps.google.com/mapfiles/kml/shapes/placemark_circle_highlight.png</href></Icon></IconStyle><LabelStyle><color>ff11ffb5</color><scale>0.9</scale></LabelStyle><LineStyle><color>001111ff</color></LineStyle></Style> 
<StyleMap id="2_spider"><Pair><key>normal</key><styleUrl>#2_sn_spider</styleUrl></Pair><Pair><key>highlight</key><styleUrl>#2_sh_spider</styleUrl></Pair></StyleMap> 


<styleUrl>#doc</styleUrl> 
<Folder><name>Airports</name> 
<styleUrl>#airportfolder</styleUrl> 


<Placemark><name>Durham Tees Valley</name><description></description> 
<Snippet maxLines="0"></Snippet><styleUrl>#2_spider</styleUrl><MultiGeometry><LineString><altitudeMode>relativeToGround</altitudeMode><coordinates>-1.426979,54.5105876,0 -1.37505058232182,54.3588196840161,8130.76624025246 -1.32350445540046,54.2070296447423,15640.4403479026 -1.27233575193875,54.0552177670135,22453.9881416349 -1.22153968418068,53.90338433094,28503.3309041539 -1.17111154230159,53.7515296120054,33728.0256022233 -1.12104669283672,53.5996538811612,38075.8688134745 -1.07134057714712,53.4477574049198,41503.4183257466 -1.02198870992187,53.2958404454444,43976.4271973102 -0.972986677715595,53.1439032606379,45470.1859409886 -0.924330137520422,52.9919461042286,45969.769413186 -0.876014815371306,52.8399692258547,45470.1859409886 -0.828036504983954,52.6879728711457,43976.4271973102 -0.780391066424406,52.5359572818033,41503.4183257466 -0.733074424809449,52.3839226956791,38075.8688134745 -0.686082569037039,52.2318693468513,33728.0256022233 -0.639411550545936,52.0797974656991,28503.3309041538 -0.593057482103787,51.9277072789755,22453.9881416349 -0.547016536622892,51.7755990098789,15640.4403479026 -0.501284946002942,51.623472878122,8130.76624025247 -0.455859000000019,51.4713291000001,0 </coordinates></LineString> 
<LineString><altitudeMode>relativeToGround</altitudeMode><coordinates>-1.426979,54.5105876,0 -1.37505058232182,54.3588196840161,8130.76624025246 -1.32350445540046,54.2070296447423,15640.4403479026 -1.27233575193875,54.0552177670135,22453.9881416349 -1.22153968418068,53.90338433094,28503.3309041539 -1.17111154230159,53.7515296120054,33728.0256022233 -1.12104669283672,53.5996538811612,38075.8688134745 -1.07134057714712,53.4477574049198,41503.4183257466 -1.02198870992187,53.2958404454444,43976.4271973102 -0.972986677715595,53.1439032606379,45470.1859409886 -0.924330137520422,52.9919461042286,45969.769413186 -0.876014815371306,52.8399692258547,45470.1859409886 -0.828036504983954,52.6879728711457,43976.4271973102 -0.780391066424406,52.5359572818033,41503.4183257466 -0.733074424809449,52.3839226956791,38075.8688134745 -0.686082569037039,52.2318693468513,33728.0256022233 -0.639411550545936,52.0797974656991,28503.3309041538 -0.593057482103787,51.9277072789755,22453.9881416349 -0.547016536622892,51.7755990098789,15640.4403479026 -0.501284946002942,51.623472878122,8130.76624025247 -0.455859000000019,51.4713291000001,0 </coordinates></LineString> 
<LineString><altitudeMode>relativeToGround</altitudeMode><coordinates>-1.426979,54.5105876,0 -1.46306991162193,54.6452657167915,8130.76624025246 -1.4994007562172,54.7799330335197,15640.4403479026 -1.5359743201564,54.9145894238809,22453.9881416349 -1.57279343190481,55.0492347596452,28503.3309041539 -1.6098609628193,55.1838689106202,33728.0256022233 -1.64717982796325,55.3184917446126,38075.8688134745 -1.6847529869399,55.4531031273904,41503.4183257466 -1.72258344474472,55.5877029226427,43976.4271973102 -1.76067425263717,55.7222909919396,45470.1859409886 -1.79902850903249,55.8568671946911,45969.769413186 -1.83764936041401,55.9914313881044,45470.1859409886 -1.87654000226647,56.1259834271408,43976.4271973102 -1.91570368003095,56.2605231644716,41503.4183257466 -1.95514369008209,56.3950504504321,38075.8688134745 -1.99486338072804,56.5295651329761,33728.0256022233 -2.03486615323379,56.6640670576277,28503.3309041538 -2.0751554628687,56.7985560674327,22453.9881416349 -2.11573481997855,56.933032002909,15640.4403479026 -2.15660779108317,57.0674947019956,8130.76624025247 -2.19777799999999,57.201944,0 </coordinates></LineString> 

<Point><coordinates>-1.426979,54.5105876,0</coordinates></Point></MultiGeometry></Placemark> 

</Folder> 

</Document> 
</kml> 

risposta

1

No, non è possibile. Multigeometry è un figlio di Placemark, che ha l'elemento styleUrl. Faresti meglio a suddividerli in elementi Placemark diversi e raggrupparli a livello di cartella.

+0

La cartella è una soluzione ragionevole, fino a quando non si desidera utilizzare una StyleMap e ottenere uno stile diverso sull'evidenziazione del mouse. Se si disegna la cartella, tutti i bambini ottengono lo stesso stile, ma se si impostano i bambini, solo uno alla volta può ottenere il momento saliente. A meno che non manchi qualcosa. – yoyo

6

No, vedere la FAQ KML, si rivolgono tua question:

posso assegnare diversi colori/stili a geometrie diverse in un MultiGeometry elemento ?

L'elemento MultiGeometry raggruppa le geometrie insieme nello stesso elemento Placemark. Ciò consente alle geometrie di di condividere lo stesso stile e di apparire come un elemento in un elenco come il riquadro I miei luoghi in Google Earth.

stili vengono impostati a livello Placemark, sia utilizzando una styleUrl elemento o un elemento di stile. Pertanto, le singole geometrie in quel Segnaposto non possono avere stili diversi.

vedere anche la soluzione che ho trovato utile:

Una soluzione utilizzata di frequente è quello di creare un segnaposto separato per ogni geometria, che permette a ciascuno di avere uno stile diverso. Per evitare una proliferazione di elementi di un elenco, metterli in una cartella che ha un ListStyle con un listItemType con checkHideChildren. In Google Earth, ad esempio, posiziona tutti i segnaposto nella stessa cartella elemento in Le mie posizioni e impedisce all'utente di aprirlo a visualizzare un numero elevato di elementi.

Problemi correlati