Titanium Community Questions & Answer Archive

We felt that 6+ years of knowledge should not die so this is the Titanium Community Questions & Answer Archive

MapView shows empty grid in Android

I'm trying to show a mapview in my Android app however it's just a blank grid, no map is shown. I have a google maps api key specified in my tiapp.xml like so:

<property name="ti.android.debug" type="bool">false</property>
  <property name="ti.android.google.map.api.key.development">devkey</property>
  <property name="ti.android.google.map.api.key.production">productionkey</property>
</ti:app>

What am I missing?

— asked November 11th 2010 by Justin Toth
  • mapview
0 Comments

4 Answers

  • For some reason on the simulator the kitchen sink api key works but my own doesn't so I changed my dev key to kitchen sink's and now the map loads up. However, if I try to load an annotation on the map then the entire app crashes:

    function displayMap() {
        //create annotation.
        var annotation = createMapAnnotation();
        //create map.
        var mapView = Titanium.Map.createView({
            mapType: Titanium.Map.STANDARD_TYPE,
            region: { latitude: 39.469688, longitude: -76.637808, latitudeDelta: 0.5, longitudeDelta: 0.5 },
            animate: true, regionFit: true, userLocation: true,
            top: 85, bottom: 65
            ,annotations:[annotation]
        });
        if (!isAndroid) {
            mapView.addAnnotation(annotation);
        }
        mapView.selectAnnotation(annotation);
        win.add(mapView);
        //create menu.
        createMapMenu();
    }
    
    function createMapAnnotation() {
        var annotationParams = {
            latitude: 39.469688,
            longitude: -76.637808,
            title: vehicle.vehicle,
            subtitle: vehicle.ipaddress,
            animate: true,
            //pincolor: Titanium.Map.ANNOTATION_PURPLE,
            //leftButton: '../images/atlanta.jpg',
            //rightButton: Titanium.UI.iPhone.SystemButton.DISCLOSURE,
            myid: 1 // CUSTOM ATTRIBUTE THAT IS PASSED INTO EVENT OBJECTS
        };
    //    if (!isAndroid) {
    //        annotationParams.pincolor = Titanium.Map.ANNOTATION_PURPLE;
    //    } else {
    //        annotationParams.pinImage = path + "images/pin.png";
    //    }
        return Titanium.Map.createAnnotation(annotationParams);
    }
    

    The logging shows:

    [TRACE] W/Maps.MyLocationOverlay( 1251): Couldn't get provider gps: Requires ACCESS_FINE_LOCATION permission
    [TRACE] W/Maps.MyLocationOverlay( 1251): Couldn't get provider network: Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission
    [TRACE] W/Maps.MyLocationOverlay( 1251): None of the desired Location Providers are available
    [TRACE] D/AndroidRuntime( 1251): Shutting down VM
    etc…

    Any ideas?

    — answered November 11th 2010 by Justin Toth
    permalink
    0 Comments
  • Got it working, i was setting the subtitle to an integer instead of a string, doh!

    — answered November 11th 2010 by Justin Toth
    permalink
    0 Comments
  • I tried to copy KitchenSink's dev key to my app. On the emulator it works in the 50% of time, but it worked not a single time on my ZTE Blade. Shall it work anyways with KitchenSink's key?

    — answered October 27th 2011 by Kristof Gruber
    permalink
    0 Comments
  • You need your correct Google KEY and modify AndroidManifest.xml as explain here: http://developer.appcelerator.com/question/121105/crash-in-android-when-using-maps

    Also you need a device with Internet access to display the map instead an empty grid. Include this in your AndroidManifest.xml also:

    <uses-permission android:name="android.permission.INTERNET"/>

    — answered August 17th 2012 by Jorge Carro
    permalink
    0 Comments
The ownership of individual contributions to this community generated content is retained by the authors of their contributions.
All trademarks remain the property of the respective owner.