Titanium 在Tianium MapView上访问运行时创建的注释

Titanium 在Tianium MapView上访问运行时创建的注释,titanium,titanium-mobile,titanium-alloy,Titanium,Titanium Mobile,Titanium Alloy,我对钛行业非常陌生,所以这可能是一个愚蠢的问题,无论如何,我无法解决这个问题: 我在.xml上创建了一个mapview,如下所示: <View id="mapview" ns="Ti.Map" mapType="Ti.Map.STANDARD_TYPE" > <Annotation id="place" latitude="20.735145" longitude="-103.4548" title="Tech" pincolor="Titanium.Map.ANNOT

我对钛行业非常陌生,所以这可能是一个愚蠢的问题,无论如何,我无法解决这个问题:

我在.xml上创建了一个mapview,如下所示:

<View id="mapview" ns="Ti.Map" mapType="Ti.Map.STANDARD_TYPE" >
    <Annotation id="place" latitude="20.735145" longitude="-103.4548" title="Tech" pincolor="Titanium.Map.ANNOTATION_RED" leftButton="/images/appcelerator_small.png" />
</View>
var newDropMessage = Titanium.Map.createAnnotation({
        latitude:10,
        longitude:10,
        title:"Hi",
        pincolor:Titanium.Map.ANNOTATION_RED,           
        animate:true,
        rightButton: Titanium.UI.iPhone.SystemButton.DISCLOSURE
    });

    $.mapview.addAnnotation(newDropMessage); //Add the annotation
for (i = 0; i < $.mapview.annotations.length; i++)
{
    alert($.mapview.annotations[i].title);
}
在后面的代码中,我无法循环使用每个注释,只有第一个注释(在XML中创建的注释)显示带有如下代码的警报:

<View id="mapview" ns="Ti.Map" mapType="Ti.Map.STANDARD_TYPE" >
    <Annotation id="place" latitude="20.735145" longitude="-103.4548" title="Tech" pincolor="Titanium.Map.ANNOTATION_RED" leftButton="/images/appcelerator_small.png" />
</View>
var newDropMessage = Titanium.Map.createAnnotation({
        latitude:10,
        longitude:10,
        title:"Hi",
        pincolor:Titanium.Map.ANNOTATION_RED,           
        animate:true,
        rightButton: Titanium.UI.iPhone.SystemButton.DISCLOSURE
    });

    $.mapview.addAnnotation(newDropMessage); //Add the annotation
for (i = 0; i < $.mapview.annotations.length; i++)
{
    alert($.mapview.annotations[i].title);
}

我创建了更多注释,但只显示了一个。如何显示所有注释?

您将错误的注释对象与错误的地图不匹配

Tianium for Android有两种地图视图,一种是旧的API。您正在使用附加模块。请在文档中注意这一点:

该模块是Android上内置的Tianium.Map模块的替代品,该模块使用Google Maps API v1。Google Maps API v1已弃用,2013年3月3日之后,Google将不再发布新的Maps API v1密钥。新应用程序应在Android上使用此模块

在代码中,您从旧的MapView创建了错误的注释类型。而是使用新模块创建如下注释:

// Include the new map module
var NewMapModule = require('ti.map');
var mountainView = NewMapModule.createAnnotation({
    latitude:37.390749,
    longitude:-122.081651,
    title:"Appcelerator Headquarters",
    subtitle:'Mountain View, CA',
    pincolor:Alloy.Globals.Map.ANNOTATION_RED,
    myid:1 // Custom property to uniquely identify this annotation.
});

$.mapview.region = {latitude:33.74511, longitude:-84.38993,
                    latitudeDelta:0.01, longitudeDelta:0.01};
$.mapview.addAnnotation(mountainView);
这就是为什么您只看到一个注释,因为它是由Alloy正确实例化的