brmap.java
来自「java调用ie浏览器demo源码,可以用在windows或者linux」· Java 代码 · 共 1,142 行 · 第 1/4 页
JAVA
1,142 行
*/
public void setViewType(int _viewType) {
int old = viewType;
viewType = _viewType;
if( old!=viewType ){
setMapProperty("View", _viewType);
}
int iVM = viewType & 3;
btRoadView.setSelected(VIEW_ROAD==iVM);
btSatelliteView.setSelected(VIEW_SATELLITE==iVM);
btHybridView.setSelected((VIEW_ROAD|VIEW_SATELLITE)==iVM);
propertyChangeSupport.firePropertyChange("viewType", old, viewType);
}
/**
* Holds value of property mapProvider.
*/
private int mapProvider = MAP_MS_LIVE;
/**
* Getter for property mapProvider - MAP_XXXX const
* @return Value of property mapProvider.
*/
public int getMapProvider() {
return mapProvider;
}
/*
final String _stViewState = (null==stViewState && stURL.equals(stAboutBlank))
? null
: ((null==stViewState)
? execJS("_getViewDescriptor();")
: stViewState);
if(null!=_stViewState){
String args[] = _stViewState.split(",");
if(2<=args.length){
setViewCenter(args[0] + "," + args[1]);
}
if(3<=args.length){
setZoomLevel( Math.min(
Integer.parseInt(args[2]),
mapInfos[getMapProvider()].getMaxZoomLevel()));
}
if(4<=args.length){
setViewType(Integer.parseInt(args[3]));
}
}
*/
/**
* Setter for property _mapProvider.
* @param _mapProvider New value of property _mapProvider.
*/
public void setMapProvider(int _mapProvider) {
if(isMapReady()){
//viewCenter = execJS("_getCenter()");
setMapReady(false);
}
int old = mapProvider;
mapProvider = _mapProvider;
skipJSChanges = true;
setZoomLevel(viewZoomLevel);
skipJSChanges = false;
setURL( mapInfos[mapProvider].getHTMLFile()
/*+ "?" + viewCenter
+ "," + viewZoomLevel
+ "," + viewType*/);
//set the limits
btGoogleMap.setSelected(MAP_GOOGLE==mapProvider);
btMicrosoftMap.setSelected(MAP_MS_LIVE==mapProvider);
btYahooMap.setSelected(MAP_YAHOO==mapProvider);
propertyChangeSupport.firePropertyChange("mapProvider", old, mapProvider);
}
public void onViewRequest()
{
execJS("_setViewDescriptor("
+ viewCenter
+ "," + viewZoomLevel
+ "," + viewType
+ ");" );
}
public void onFoundAddress(final String args[])
{
SwingUtilities.invokeLater(new Runnable(){ public void run() {
if( 4 != args.length){
JOptionPane.showConfirmDialog(
BrMap.this,
"The address was not found.",
"Warning",
JOptionPane.DEFAULT_OPTION,
JOptionPane.ERROR_MESSAGE);
} else {
setViewCenter(args[2] + "," + args[3]);
}
}});//end posponed operation
}
public void onSelectionRectChanged(Rectangle rc, boolean bShow)
{}
final static int FREE_MOVE = 0; //free mouse move
final static int SHOW_ZOOM_RECT = 1; //drow rect from ancor
final static int HIDE_ZOOM_RECT = 2; //drow rect from ancor
double distanse = 0.0;
Rectangle rcOldSelect = null;
Rectangle rcNewSelect = null;
int map_state = FREE_MOVE;
Point ancor;
Point2D ancorLL;
public void onMouseEvent(final String type, final String args[])
{
Point pos = new Point(Integer.parseInt(args[2]), Integer.parseInt(args[3]));
final Point2D posLL = point2LL(pos);
//System.out.println("posLL:" + posLL);
int button = Integer.parseInt(args[4]);
if(FREE_MOVE==map_state && 2==button){
map_state = SHOW_ZOOM_RECT;
ancor = pos;
ancorLL = posLL;
} else if(
( SHOW_ZOOM_RECT==map_state && 0==(2 & button) )
|| ( SHOW_ZOOM_RECT==map_state && 2==button && "mouseup".equals(type))
){
if(null!=ancor && !isSelectionMode()){
SwingUtilities.invokeLater(new Runnable(){ public void run() {
skipJSChanges = true;
setZoomLevel(getBestZoomLevel(
ancorLL.getX(), ancorLL.getY(),
posLL.getX(), posLL.getY()));
setViewCenter( ((ancorLL.getX() + posLL.getX())/2)
+ "," + ((ancorLL.getY() + posLL.getY())/2) );
skipJSChanges = false;
execJS( ":_setViewDescriptor("
+ getViewCenter()
+ "," + getZoomLevel() + ")" );
/*
execJS( ":setTimeout(\"_setViewDescriptor("
+ getViewCenter()
+ "," + getZoomLevel()
+ ");\", 0);" );
*/
}});
}
//hide ZoomRect
ancor = null;
rcNewSelect = null;
if(null!=rcOldSelect){
onSelectionRectChanged(rcOldSelect, false);
repaint(rcOldSelect);
}
rcOldSelect = null;
} else if(SHOW_ZOOM_RECT==map_state && null!=ancor ){
if(2==button){
execJS( ":event_returnValue=true;event_cancelBubble=true;");
}
distanse = getDistance(
//distanse = getDistanceInPixel(
ancorLL.getX(), ancorLL.getY(),
posLL.getX(), posLL.getY());
//System.out.print(ancorLL.getX() + "," + ancorLL.getY() + "\n");
if(null!=rcOldSelect){
repaint(rcOldSelect);
}
rcNewSelect = new Rectangle(
Math.min(ancor.x, pos.x),
Math.min(ancor.y, pos.y),
Math.abs(ancor.x - pos.x),
Math.abs(ancor.y - pos.y)
);
onSelectionRectChanged(rcNewSelect, true);
repaint(rcNewSelect);
} else {
map_state = FREE_MOVE;
}
setMouseGeoPos( new BrMapMousePos(pos, posLL) );
}
/**
* Mouse geo and ordinal position holder.
*/
public BrMapMousePos mouseGeoPos;
/**
* Get the value of mouseGeoPos.
* @return the value of mouseGeoPos
*/
public BrMapMousePos getMouseGeoPos() {
return mouseGeoPos;
}
/**
* Set the value of mouseGeoPos.
* @param mouseGeoPos new value of mouseGeoPos
*/
public void setMouseGeoPos(BrMapMousePos mouseGeoPos) {
BrMapMousePos old = this.mouseGeoPos;
this.mouseGeoPos = mouseGeoPos;
propertyChangeSupport.firePropertyChange("mouseGeoPos", old, mouseGeoPos);
}
/**
* Hold map script object state
*/
public boolean mapReady = false;
/**
* Get the value of mapReady
* @return the value of mapReady
*/
public boolean isMapReady() {
return mapReady;
}
/**
* Set the value of mapReady
* @param mapReady new value of mapReady
*/
public void setMapReady(boolean _mapReady) {
boolean old = mapReady;
mapReady = _mapReady;
if(null!=bnZoomMinus){
btGoogleMap.setEnabled(mapReady);
btHybridView.setEnabled(mapReady);
btMicrosoftMap.setEnabled(mapReady);
btRoadView.setEnabled(mapReady);
btSatelliteView.setEnabled(mapReady);
btYahooMap.setEnabled(mapReady);
sbZoomLevel.setEnabled(mapReady);
bnZoomMinus.setEnabled(mapReady);
bnZoomPlus.setEnabled(mapReady);
setZoomLevel(getZoomLevel());
}
propertyChangeSupport.firePropertyChange("mapReady", old, mapReady);
}
/**
* Holds right-mouse click rectangle selection mode
*/
public boolean selectionMode = false;
/**
* Get the value of selectionMode
* @return the value of selectionMode
*/
public boolean isSelectionMode() {
return selectionMode;
}
/**
* Set the value of selectionMode
* @param selectionMode new value of selectionMode
*/
public void setSelectionMode(boolean selectionMode) {
boolean old = this.selectionMode;
this.selectionMode = selectionMode;
propertyChangeSupport.firePropertyChange("selectionMode", old, selectionMode);
}
@Override
public void setURL(String _stURL) {
setMapReady(false);
super.setURL(_stURL);
}
}
class JBottomSlider extends JSlider
{
@Override
public void reshape(int x, int y, int width, int height) {
Rectangle rc = getParent().getBounds();
y = rc.height - height - 3;
super.reshape(x, y, width, height);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?