关于mapboxjava的信息

博主:adminadmin 2023-01-21 21:30:06 344

今天给各位分享mapboxjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java问题:提取出需要的代码如下:

因为

mydb.doPstm(sql, params);

方法虽然是另一个类中的,但是传入的参数是OpGetListBox(String sql,Object[] params)的第二个形式参数---params呀!也就是说

mydb.doPstm(sql, params);方法的两个参数使用的是OpGetListBox(String sql,Object[] params)方法的两个传入参数,因此名称必须完全一致,如果要修改的话两者都必须同时修改,否则无法识别。

Mapbox源码分析(2)url解析

通过源码,我们来一步步分析Mapbox地图引擎如何进行指定字符串变量解析成url地址加载的,这里是基于5.3.0的版本.

在官方demo中,我们不仅可以加载本地样式文件,已定义样式文件和网络在线文件,它们的格式分别是

1. "asset://test.json"

2 . ""

3 . "mapbox://styles/mapbox/streets-v10"

这些格式,那么Mapbox如果解析这些字符串去获取到需要的样式数据呢?我们从 Mapbox源码分析(1)样式加载 这篇的loadURL()方法开始看起

我们在这里看到,样式的数据是通过fileSource.request进行请求加载的,通过调试我们发现这个fileSource是FileSource的子类DefaultFileSource,那么我们先看看这个DefaultFileSource是什么时候传进来的

我们在这里看到,是在构造方法时对fileSource变量进行初始化的,那么我们只需要看到Style::Impl对象什么时候构造的,便知道了fileSource的来源,继续往回找

在这里我们发现Impl对象的fileSource是Style对象构造时传进来的,那么我们继续往回找

这里我们看到Style对象是通过map.cpp里的getStyle对象获取的,而style对象是在Map::Impl::Impl构造方法时初始化的,继续往回找

这里我们其实也能大概猜出来Map::Impl对象是在Map构造方法时初始化的,那么map对象又是什么时候初始化的,是不是觉得很绕,马上就快到了,我们找到native_map_view.cpp文件,发现在NativeMapView构造方法中构造了map对象

到这里我们已经基本清楚fileSource的来源了,是JAVA层NativeMapView对象初始化的时候传下来的,我们继续看到开头,既然我们已经知道fileSource对象是DefaultFileSource,那么它调用的request方法,也就是调用的DefaultFileSource的request方法,这里我们看到default_file_source.cpp文件

这里我们看到它转到了它的实现类的request方法

这里我们可以看到根据url的不同,和加载方法的不同,将请求分别转给了assetFileSource,localFileSource,onlineFileSource等的request方法,这里我们看onlineFileSource的request方法

看到这里我们看到根据请求的类型不同,去处理不同的url,在这些参数里我们看下apiBaseURL这个变量,这是一个base url,指定了服务器地址,我们在constants.hpp文件中找到了它

constexpr const char* API_BASE_URL = "";

继续往下看,我们选normalizeStyleURL()方法往下看

这里我们看到它先验证了一下url,然后将url字符串包装成URL对象,然后进行一个拼接成tpl变量,最后再通过transformURL函数进行一个转换,这里我们先看它如何包装这个URL对象的

这里我们看到它将字符串分解成query,scheme,domain,path四个变量进行存储,我们再看看transformURL()函数

这里我们看到根据url的不同变量值进行了再次字符串拼接,甚至根据路径的不同,继续拆分成Path对象,最后将拼接结果返回,到这里有关url解析拼接的过程就讲完了.

用Java编写小程序(包含组合框下拉和文本框)变换背景颜色

代码如下:

import java.awt.Color;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.util.HashMap;

import java.util.Map;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JTextField;

public class App extends JFrame {

private JComboBoxString cbxColors;

private JTextField txtName;

private MapString, Color colorMap;

public App() {

this.setSize(300, 100);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLayout(new FlowLayout());

colorMap = new HashMap();

colorMap.put("红", Color.RED);

colorMap.put("绿", Color.GREEN);

colorMap.put("蓝", Color.BLUE);

colorMap.put("黄", Color.YELLOW);

cbxColors = new JComboBox(colorMap.keySet().toArray());

cbxColors.setPreferredSize(new Dimension(50, 23));

cbxColors.addItemListener(e - {

Color color = colorMap.get(e.getItem());

txtName.setBackground(color);

});

this.add(cbxColors);

txtName = new JTextField();

txtName.setPreferredSize(new Dimension(100, 23));

txtName.setBackground(Color.RED);

this.add(txtName);

}

public static void main(String[] args) {

new App().setVisible(true);

}

}

运行结果:

mapboxjava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、mapboxjava的信息别忘了在本站进行查找喔。