Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. import { Component, OnInit } from '@angular/core';
  2.  
  3. @Component({
  4. selector: 'app-mappicker',
  5. styles: [`
  6. #map {
  7. width: 100%;
  8. height: 200px;
  9. }
  10. `],
  11. templateUrl: 'mappicker.component.html'
  12. })
  13. export class MappickerComponent implements OnInit{
  14.  
  15. // initial center position for the map
  16.  
  17. lat: number;
  18. lng: number;
  19.  
  20. //Markers
  21. markers: marker[] = [];
  22. constructor() {
  23. }
  24.  
  25. ngOnInit(){
  26.  
  27. // Try HTML5 geolocation
  28. if(navigator.geolocation) {
  29. navigator.geolocation.getCurrentPosition(this.setPosition.bind(this));
  30. } else {
  31. // Browser doesn't support Geolocation
  32. console.log("Not Supported");
  33. }
  34. }
  35.  
  36. setPosition(position) {
  37. this.lat = position.coords.latitude;
  38. this.lng = position.coords.longitude;
  39.  
  40. console.log(this.lat, this.lng);
  41.  
  42. var newMarker = {
  43. name: 'Untitled',
  44. lat: position.coords.latitude,
  45. lng: position.coords.longitude,
  46. draggable: true
  47. }
  48.  
  49. this.markers.push(newMarker);
  50. }
  51. // google maps zoom level
  52. zoom: number = 8;
  53. map;
  54.  
  55.  
  56. clickedMarker(marker: marker, index: number) {
  57. console.log(`clicked the marker:`+marker.name+ ` at the index `+index);
  58. }
  59.  
  60. mapClicked($event: any) {
  61.  
  62. console.log('Map clicked',$event.coords.lat, $event.coords.lng);
  63. var newMarker = {
  64.  
  65. name: 'Untitled',
  66. lat: $event.coords.lat,
  67. lng: $event.coords.lng,
  68. draggable: true
  69. }
  70.  
  71. this.markers.push(newMarker);
  72. }
  73.  
  74. markerDragEnd(marker: any, $event: any) {
  75. console.log('dragEnd', marker, $event.coords.lat, $event.coords.lng);
  76.  
  77. var updMarker = {
  78. name: marker.name,
  79. lat: parseFloat(marker.lat),
  80. lng: parseFloat(marker.lng),
  81. draggable: false
  82. }
  83.  
  84. var newLat = $event.coords.lat;
  85. var newLng= $event.coords.lng;
  86.  
  87. console.log(newLat+' '+newLng);
  88. }
  89. }
  90.  
  91. // just an interface for type safety.
  92. interface marker {
  93. name?: string;
  94. lat: number;
  95. lng: number;
  96. label?: string;
  97. draggable: boolean;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement