0

我正在尝试使用展开地图显示全世界的地震数据,但我遇到了我不理解的错误。请帮助我解决这些错误

过去,我曾尝试通过将布尔值设置为 true 来离线运行地图,但我没有工作。

问题来自 Coursera,以作业的形式出现。我在此作业中遇到问题

Using OpenGLMapDisplay with processing.opengl.PGraphics3D
Exception in thread "Animation Thread" java.lang.NullPointerException
    at module3.EarthquakeCityMap.setup(EarthquakeCityMap.java:102)
    at processing.core.PApplet.handleDraw(PApplet.java:2365)
    at processing.opengl.PJOGL$PGLListener.display(PJOGL.java:873)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:690)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:672)
    at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1383)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131)
    at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1394)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

 List<Marker> markers = new ArrayList<Marker>();

    //Use provided parser to collect properties for each earthquake
    //PointFeatures have a getLocation method
    List<PointFeature> earthquakes = ParseFeed.parseEarthquake(this, earthquakesURL);

    for (PointFeature eq: earthquakes) {
        markers.add(new SimplePointMarker(eq.getLocation(), eq.getProperties()));
    }

    // Add the markers to the map so that they are displayed
    map.addMarkers(markers);



int yellow = color(255,255,0);
int gray = color(150,150,150);

for(Marker mk : markers) {
    if ((int) mk.getProperty("year") > 2000) {
        mk.setColor(yellow);
    }
    else {
        mk.setColor(gray);
    }
}


}


@SuppressWarnings("unused")
private SimplePointMarker createMarker(PointFeature feature)
{  
    // To print all of the features in a PointFeature (so you can see what they are)
    // uncomment the line below.  Note this will only print if you call createMarker 
    // from setup
    //System.out.println(feature.getProperties());

    // Create a new SimplePointMarker at the location given by the PointFeature
    SimplePointMarker marker = new SimplePointMarker(feature.getLocation());

    Object magObj = feature.getProperty("magnitude");
    float mag = Float.parseFloat(magObj.toString());

    // Here is an example of how to use Processing's color method to generate 
    // an int that represents the color yellow.  
    int yellow = color(255, 255, 0);


    // Finally return the marker
    return marker;
}

public void draw() {
    background(10);
    map.draw();
}
4

1 回答 1

1

这是例外

Exception in thread "Animation Thread" java.lang.NullPointerException

这是哪里

at module3.EarthquakeCityMap.setup(EarthquakeCityMap.java:102)

因此,您需要进入“EarthquakeCityMap.java”,第 102 行并找到可能导致空指针异常的原因

于 2019-08-12T07:56:04.873 回答