Package com.google.gwt.maps.client.overlay

Examples of com.google.gwt.maps.client.overlay.Marker


        // Do not mis-interpret clicks on the info window and marker as
        // map click events to be reverse geocoded.
        if (event.getOverlay() != null) {
          return;
        }
        final Marker marker = new Marker(event.getLatLng());
        final VerticalPanel panel = new VerticalPanel();
        final InfoWindowContent content = new InfoWindowContent(panel);
        panel.add(new Label("LatLng: " + event.getLatLng().toString()));

        // Do a reverse geocode of this position
        geocoder.getLocations(event.getLatLng(), new LocationCallback() {

          public void onFailure(int statusCode) {
            Window.alert("Failed to geocode position " + event.getLatLng()
                + ". Status: " + statusCode + " "
                + StatusCodes.getName(statusCode));
          }

          public void onSuccess(JsArray<Placemark> locations) {
            for (int i = 0; i < locations.length(); ++i) {
              Placemark location = locations.get(i);
              StringBuilder value = new StringBuilder();
              if (location.getAddress() != null) {
                value.append(location.getAddress());
              } else {
                if (location.getCity() != null) {
                  value.append(location.getCity());
                }
                if (location.getAdministrativeArea() != null) {
                  value.append(location.getAdministrativeArea() + ", ");
                }
                if (location.getCountry() != null) {
                  value.append(location.getCountry());
                }
              }
              int ordinal = (i + 1);
              panel.add(new Label("  " + ordinal + ") " + value.toString()));
            }
            map.addOverlay(marker);
            map.getInfoWindow().open(marker, content);
          }
        });
        marker.addMarkerClickHandler(new MarkerClickHandler() {

          public void onClick(MarkerClickEvent markerClickEvent) {
            if (!map.getInfoWindow().isVisible()) {
              map.getInfoWindow().open(marker, content);
            }
View Full Code Here


    if (uidl.hasAttribute("marker")) {
      // When adding the markers we get the ID from JSONString.toString()
      // which includes quotation marks around the ID.
      String markerId = "\"" + uidl.getStringAttribute("marker") + "\"";

      Marker marker = knownMarkers.get(markerId);

      for (final Iterator<Object> it = uidl.getChildIterator(); it
          .hasNext();) {
        final UIDL u = (UIDL) it.next();
        if (!u.getTag().equals("tabs")) {
          continue;
        }

        if (u.getChildCount() == 0) {
          log(1, "No contents for info window");
        } else if (u.getChildCount() == 1) {
          // Only one component in the info window -> no tabbing
          UIDL paintableUIDL = u.getChildUIDL(0).getChildUIDL(0);
          Paintable paintable = client.getPaintable(paintableUIDL);

          map.getInfoWindow().open(marker.getLatLng(),
              new InfoWindowContent((Widget) paintable));

          // Update components in the info window after adding them to
          // DOM so that size calculations can succeed
          paintable.updateFromUIDL(paintableUIDL, client);
        } else {
          int tabs = u.getChildCount();
          // More than one component, show them in info window tabs
          InfoWindowContent.InfoWindowTab[] infoTabs = new InfoWindowContent.InfoWindowTab[tabs];

          Paintable[] paintables = new Paintable[tabs];
          UIDL[] uidls = new UIDL[tabs];

          int selectedId = 0;
          for (int i = 0; i < u.getChildCount(); i++) {
            UIDL childUIDL = u.getChildUIDL(i);
            if (selectedId == 0
                && childUIDL.getBooleanAttribute("selected")) {
              selectedId = i;
            }

            String label = childUIDL.getStringAttribute("label");

            UIDL paintableUIDL = childUIDL.getChildUIDL(0);
            Paintable paintable = client
                .getPaintable(paintableUIDL);

            paintables[i] = paintable;
            uidls[i] = paintableUIDL;

            infoTabs[i] = new InfoWindowContent.InfoWindowTab(
                label, (Widget) paintable);
          }

          map.getInfoWindow().open(marker.getLatLng(),
              new InfoWindowContent(infoTabs, selectedId));

          // Update paintables after adding them to DOM so that
          // size calculations can succeed
          for (int i = 0; i < paintables.length; i++) {
View Full Code Here

    if (lng < -180 || lng > 180) {
      log(1, "Invalid latitude for marker: " + lat);
      return null;
    }

    Marker result = new Marker(LatLng.newInstance(lat, lng), mopts);
    result.setVisible(jsVisible.booleanValue());

    return result;
  }
View Full Code Here

    client.updateVariable(paintableId, "center",
        map.getCenter().toString(), true);
  }

  public void onDragEnd(MarkerDragEndEvent event) {
    Marker marker = (Marker) event.getSource();

    Set<String> keys = knownMarkers.keySet();
    for (String key : keys) {

      // Find the key for the moved marker
      if (knownMarkers.get(key).equals(marker)) {
        client.updateVariable(paintableId, "markerMovedId", key, false);
        client.updateVariable(paintableId, "markerMovedLat", marker
            .getLatLng().getLatitude(), false);
        client.updateVariable(paintableId, "markerMovedLong", marker
            .getLatLng().getLongitude(), true);
        break;
      }
    }
  }
View Full Code Here

        for (int i = 0; i < array.size(); i++) {
          JSONObject jsMarker;
          JSONString jsMID, jsTitle, jsIcon;
          JSONNumber jsLat, jsLng;
          JSONBoolean jsVisible, jsHasInfo, jsDraggable;
          Marker marker = null;
          boolean isOldMarker = false;
          boolean replaceMarker = false;

          if ((jsMarker = array.get(i).isObject()) == null) {
            continue;
          }

          // Read marker id
          if ((value = jsMarker.get("mid")) == null) {
            continue;
          }
          if ((jsMID = value.isString()) == null) {
            continue;
          }

          if ((value = jsMarker.get("draggable")) == null) {
            continue;
          } else {
            if (knownMarkers.containsKey(jsMID.toString())) {
              marker = knownMarkers.get(jsMID.toString());
              marker.setDraggingEnabled((((JSONBoolean) jsMarker
                  .get("draggable")).booleanValue()));
              isOldMarker = true;
            }
          }

          // Add maker to list of markers in this update
          markersFromThisUpdate.add(jsMID.toString());

          // Read marker latitude
          if ((value = jsMarker.get("lat")) == null) {
            if (!isOldMarker)
              continue;
          }
          if ((jsLat = value.isNumber()) == null) {
            if (!isOldMarker)
              continue;
          }

          // Read marker longitude
          if ((value = jsMarker.get("lng")) == null) {
            if (!isOldMarker)
              continue;
          }
          if ((jsLng = value.isNumber()) == null) {
            if (!isOldMarker)
              continue;
          } else {
            // marker.setLatLng(jsLng.doubleValue());
          }

          // Read marker title
          if ((value = jsMarker.get("title")) == null) {
            if (!isOldMarker)
              continue;
          }
          if ((jsTitle = value.isString()) == null) {
            if (!isOldMarker)
              continue;
          } else {
            if (isOldMarker && marker != null) {
              String title = marker.getTitle();

              // if title is changed
              if (!jsTitle.stringValue().equals(title)) {
                replaceMarker = true;
                log(1, "Title changed: " + marker.getTitle());
              }
            }
          }

          // Read marker visibility
          if ((value = jsMarker.get("visible")) == null) {
            if (!isOldMarker)
              continue;
          }
          if ((jsVisible = value.isBoolean()) == null) {
            if (!isOldMarker)
              continue;
          } else {
            if (marker != null) {
              boolean old = marker.isVisible();

              marker.setVisible(jsVisible.booleanValue());

              if (old != marker.isVisible()) {
                log(1,
                    "Toggled marker '" + marker.getTitle()
                        + "' visibility to "
                        + jsVisible.booleanValue());
              }
            }
          }

          // Read marker draggability (is that a word? :)
          if ((value = jsMarker.get("draggable")) == null) {
            if (!isOldMarker)
              continue;
          }

          if ((jsDraggable = value.isBoolean()) == null) {
            if (!isOldMarker)
              continue;
          }

          // Change position, if changed
          if (marker != null && jsLat != null && jsLng != null
              && marker.getLatLng() != null) {
            LatLng llang = marker.getLatLng();

            LatLng llang2 = LatLng.newInstance(jsLat.doubleValue(),
                jsLng.doubleValue());
            if (!llang.isEquals(llang2)) {
              marker.setLatLng(llang2);
            }
          }

          // Read marker icon
          if ((value = jsMarker.get("icon")) == null) {
            jsIcon = null;
            if (marker != null) {
              String currentURL = getMarkerIconURL(marker);
              if (!currentURL
                  .startsWith("http://maps.gstatic.com")
                  && currentURL != null && currentURL != "") {
                replaceMarker = true;
                log(1, "Icon url changed " + marker.getTitle()
                    + " from '" + currentURL + "'");
              }
            }
          } else if ((jsIcon = value.isString()) == null) {
            if (!isOldMarker)
              continue;
          } else {
            if (marker != null
                && getMarkerIconURL(marker) != jsIcon
                    .toString()) {
              replaceMarker = true;
              log(1, "Icon url changed 2 " + marker.getTitle());
            }
          }

          int iconAnchorX = 0;
          if ((value = jsMarker.get("iconAnchorX")) != null) {
            JSONNumber jsAnchorX;
            if ((jsAnchorX = value.isNumber()) != null) {
              log(1, "Anchor X: " + jsAnchorX.toString());
              iconAnchorX = (int) Math.round(jsAnchorX
                  .doubleValue());
            } else {
              log(1, "Anchor X NaN");
            }
          }

          int iconAnchorY = 0;
          if ((value = jsMarker.get("iconAnchorY")) != null) {
            JSONNumber jsAnchorY;
            if ((jsAnchorY = value.isNumber()) != null) {
              iconAnchorY = (int) Math.round(jsAnchorY
                  .doubleValue());
            }
          }

          // do not create new one if old found (only if we want to
          // replace it)
          if (isOldMarker && !replaceMarker)
            continue;

          if (!isOldMarker)
            replaceMarker = false; // Never replace a marker if
                        // there is no previous one

          if (replaceMarker) {
            log(1, "Replacing marker " + marker.getTitle());
            map.removeOverlay(marker);
            markersFromThisUpdate.remove(marker);
          }

          marker = createMarker(jsLat, jsLng, jsTitle, jsVisible,
              jsIcon, iconAnchorX, iconAnchorY, jsDraggable);

          if (marker != null) {
            map.addOverlay(marker);

            // Add dragEnd handlers to marker
            marker.addMarkerDragEndHandler(VGoogleMap.this);

            // Read boolean telling if marker has a info window
            if ((value = jsMarker.get("info")) != null) {
              if ((jsHasInfo = value.isBoolean()) != null
                  && jsHasInfo.booleanValue()) {
                marker.addMarkerClickHandler(new InfoWindowOpener(
                    jsMID.stringValue()));

              }
            }
View Full Code Here

      map.setSize("60em", "40em");
      // Add some controls for the zoom level
      map.addControl(new LargeMapControl());
      map.setZoomLevel(16);
      // Add a marker
      map.addOverlay(new Marker(cmu_information_systems));

      // Add an info window to highlight a point of interest
      map.getInfoWindow().open(map.getCenter(),
          new InfoWindowContent("Porter Hall 222, CMU Information Systems"));
      view.getContent().setWidget(null); // clearing the current child widget. probalby not the way to go though...
View Full Code Here

    }
  }

  private Marker createMarker(final Location loc) {
    LatLng latlng = LatLng.newInstance(loc.getLatitude(), loc.getLongitude());
    final Marker marker = new Marker(latlng);
    marker.addMarkerClickHandler(new MarkerClickHandler() {
      public void onClick(MarkerClickEvent event) {
        final InfoWindow info = map.getInfoWindow();
        info.open(marker, newLocationDescription(loc, info, marker));
      }
    });
View Full Code Here

    map.clearOverlays();
    for (final SearchResult record : response) {

      LatLng ll = LatLng.newInstance(record.getLatitude(),
          record.getLongitude());
      Marker partMarker = new Marker(ll);
      map.addOverlay(partMarker);
      partMarker.setDraggingEnabled(false);

      final StringBuilder partSubjects = new StringBuilder();

      switch (index) {
      case 0:
        if (record.isTypeParticipant()) {
          partSubjects.append(record.getP().getName());
          partSubjects.append("<br /> Needs : ");
          partSubjects
              .append(record.getP().getNeedSubjectsAsString());
          partSubjects.append("<br /> And He has : ");
          partSubjects.append(record.getP().getHasSubjectsAsString());
          partSubjects.append("<br /> more...");

        } else {
          partSubjects.append(record.getO().getLocString());
          partSubjects.append("<br /> Opportunity Needs : ");
          partSubjects.append(record.getO().getSubjectsAsString());
        }
        partMarker.setImage("images/marker.png");
        break;

      case 1:
        partSubjects.append(record.getP().getName());
        partSubjects.append("<br /> Has : ");
        partSubjects.append(record.getP().getHasSubjectsAsString());
        partMarker.setImage("images/marker1.png");
        break;

      case 2:
        if (record.isTypeParticipant()) {
          partSubjects.append(record.getP().getName());
          partSubjects.append(" Needs : ");
          partSubjects
              .append(record.getP().getNeedSubjectsAsString());
        } else {
          partSubjects.append(record.getO().getLocString());
          partSubjects.append(" Opportunity Needs : ");
          partSubjects.append(record.getO().getSubjectsAsString());
        }
        partMarker.setImage("images/marker.png");
        break;

      default:
        MainPageWidget
            .setErrorMessage("Unable to perform the Operation!");
      }

      final String temp = partSubjects.toString();

      partMarker.addMarkerMouseOverHandler(new MarkerMouseOverHandler() {

        @Override
        public void onMouseOver(MarkerMouseOverEvent event) {

          InfoWindowContent iwc = new InfoWindowContent(temp);
          InfoWindow info = map.getInfoWindow();
          info.open(event.getSender(), iwc);
        }
      });
    }
    marker = new Marker(searchLL);
    map.addOverlay(marker);
  }
View Full Code Here

  public void initMapUI() {
    map = new MapWidget();
    map.setSize("700px", "600px");

    map.setCenter(LatLng.newInstance(17.45, 78.39, true), 4);
    marker = new Marker(LatLng.newInstance(17.45, 78.39, true));
    map.setCenter(marker.getLatLng());
    MapUIOptions opts = map.getDefaultUI();
    opts.setDoubleClick(false);
    map.setUI(opts);
    map.addOverlay(marker);
    marker.setDraggingEnabled(true);

    if (needSlider) {
      addMouseOverHandler();
    }
    map.addMapClickHandler(new MapClickHandler() {

      @Override
      public void onClick(MapClickEvent event) {
        if (marker == null) {
          marker = new Marker(LatLng.newInstance(event.getLatLng()
              .getLatitude(), event.getLatLng().getLongitude(),
              true));
          map.addOverlay(marker);
        }
        marker.setLatLng(event.getLatLng());
View Full Code Here

    map.setZoomLevel(getZoomLevelByKM(km));
  }

  public void clear() {
    map.clearOverlays();
    marker = new Marker(LatLng.newInstance(lData.getLatitude(),
        lData.getLongitude(), true));
    map.addOverlay(marker);
  }
View Full Code Here

TOP

Related Classes of com.google.gwt.maps.client.overlay.Marker

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.