2

地図ビューに対して経度/緯度をピクセルに変換する方法を探しています。基本的に、ここで説明されているように、Projection.toPixels() に似たものを探しています。

私がやりたいことは次のとおりです。背景画像とテキストを含む注釈を追加する必要があります。デフォルトの注釈ではそのような機能は不可能であるため、地図ビューでの位置を何らかの方法で計算し、ラベルを追加する必要があります (代わりに)。

ほぼ 1 週間かけて作業しましたが、結果はありませんでした。

4

2 に答える 2

0

lat / lngをピクセルに変換する方法はありませんが、注釈の画像とテキストを取得する方法はあります。それは一種の「ハック」な方法ですが、機能します。基本的には、必要なものを使用してカスタムビューを作成するだけです。ビューを設定したら、注釈のimageプロパティをyourCustomView.toImage()に設定します。

次に例を示します。

//Setup device size variables
var deviceWidth = Ti.Platform.displayCaps.platformWidth;
var deviceHeight = Ti.Platform.displayCaps.platformHeight;

//Create a new window
var w = Ti.UI.createWindow({
    width:deviceWidth,
    height:deviceHeight
})

//Create view for annotation
var annotationView = Ti.UI.createView({
    width:50,
    height:50,
    backgroundImage:'http://www.insanedonkey.com/images/bubble.png',
})

//Add text to the annotation view
var annotationText = Ti.UI.createLabel({
    width:'auto',
    height:'auto',
    text:'785k',
    font:{fontSize:12,fontWeight:'bold'},
    color:'#fff',
})
annotationView.add(annotationText);

//Create a new annotation
var newAnnotation = Titanium.Map.createAnnotation({
    latitude:36.134513,
    longitude:-80.659690,
    animate:true,
    image:annotationView.toImage() //Convert the annotationView to an image blob
});


var mapview = Titanium.Map.createView({
    region:{latitude:36.134513, longitude:-80.659690, latitudeDelta:0.0009,     longitudeDelta:0.0009},
    animate:true,
    regionFit:true,
    userLocation:true,
    annotations:[newAnnotation],
    mapType:Titanium.Map.STANDARD_TYPE,
    width:2000,
    height:2000

});

//Add the mapview to the window
w.add(mapview);

//Open the window
w.open();

これがお役に立てば幸いです。

于 2012-05-03T18:50:08.163 に答える
0

注釈には、画像と、クリックしたときに表示されるタイトルを設定するためのプロパティがあります。ここを参照してください:

http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Map.Annotation-object

これはまさにあなたが探しているものではありませんか?

于 2012-04-23T14:45:34.630 に答える