2016-10-13 26 views
3

私はセシウムのマップにアイコンを追加したいと思います。 現在、私は以下のコードを実行していますが、以下の点を実際のアイコンに置き換えたいと考えています。私はセシウムの文書を見てきましたが、これを行うことはできません。何か提案ありがとうポイントの代わりにセシウムのマップにアイコンを追加するには

var points = scene.primitives.add(new Cesium.PointPrimitiveCollection()); 

points.add({ 
    position : new Cesium.Cartesian3.fromDegrees(longitude, latitude), 
    color : colorDot, 
    outlineColor : Cesium.Color.WHITE, 
    outlineWidth : width 
}); 

答えて

2

セシウムでは、これは看板と呼ばれます。基本的にはポイントと同じ方法で作成されますが、イメージは通常URLからロードされます。

https://cesiumjs.org/Cesium/Build/Documentation/BillboardCollection.html

// Create a billboard collection with two billboards 
var billboards = scene.primitives.add(new Cesium.BillboardCollection()); 
billboards.add({ 
    position : new Cesium.Cartesian3(1.0, 2.0, 3.0), 
    image : 'url/to/image' 
}); 
billboards.add({ 
    position : new Cesium.Cartesian3(4.0, 5.0, 6.0), 
    image : 'url/to/another/image' 
}); 
+0

私は上記のコードを試してみましたが、ローカルのファイルだったと私はエラーカントが」 – user3470688

+0

WebブラウザがJavaScriptが正当な理由のために、ローカルファイルを読み取ることができませんローカルファイルをロードしましたURLを試してみました。あなたのイメージは、セシウムのコピーをホストするのと同じサーバー上で、または[CORSが有効になっている](http://enable-cors.org/)のサーバー上で、他のサイトからのアセットを要求するJavaScriptを許可する必要があります。 – emackey

1

ビルボードについて@パラコートの正しい答えに追加:セシウムは、看板のような典型的なマップのアイコンを作るために使用することができる「ピン・ビルダー」を含みます。 Here's a demo

var viewer = new Cesium.Viewer('cesiumContainer'); 

var pinBuilder = new Cesium.PinBuilder(); 

var url = Cesium.buildModuleUrl('Assets/Textures/maki/grocery.png'); 
var groceryPin = Cesium.when(pinBuilder.fromUrl(url, Cesium.Color.GREEN, 48), function(canvas) { 
    return viewer.entities.add({ 
     name : 'Grocery store', 
     position : Cesium.Cartesian3.fromDegrees(-75.1705217, 39.921786), 
     billboard : { 
      image : canvas.toDataURL(), 
      verticalOrigin : Cesium.VerticalOrigin.BOTTOM 
     } 
    }); 
}); 
関連する問題